JohannWeiher

Über Johann Weiher

Der Autor hat bisher keine Details angegeben.
Bisher hat Johann Weiher, 531 Blog Beiträge geschrieben.

TIA Openness Firewall

Ich darf mich gerade, für ein Kundenprojekt, mit der Siemens TIA Portal API beschäftigen. Ist schon einige Jahre her dass ich das gemacht habe.
Viel hat sich geändert, im API-Design, und es sind viele neue Funktionen dazu gekommen.

Wird eine Openness Applikation ausgeführt muss dies vom User bestätigt werden:

Dies muss jedesmal gemacht werden wenn sich der Hash des Programms oder das Datum (LastModified) geändert hat. Das ist natürlich beim Debuggen schlimm, wenn jedes mal der Dialog kommt.

Ich hab mal die Methode hier gebastelt welchen den Whitelist-Eintrag (Bestätigung durch User) selbst macht:

public static void SetTiaPortalFirewall()
{
  // Check if admin
  WindowsIdentity identity = WindowsIdentity.GetCurrent();
  WindowsPrincipal principal = new WindowsPrincipal(identity);
  bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
  if (!isAdmin)
  {
    return;
  }

  Assembly assembly = Assembly.GetExecutingAssembly();
  string exePath = assembly.Location;

  // Get hash
  HashAlgorithm hashAlgorithm = SHA256.Create();
  FileStream stream = File.OpenRead(exePath);
  byte[] hash = hashAlgorithm.ComputeHash(stream);
  string convertedHash = Convert.ToBase64String(hash);

  // Get date
  FileInfo fileInfo = new FileInfo(exePath);
  DateTime lastWriteTimeUtc = fileInfo.LastWriteTimeUtc;
  string lastWriteTimeUtcFormatted = lastWriteTimeUtc.ToString("yyyy'/'MM'/'dd HH:mm:ss.fff");

  // Get execution version
  AssemblyName siemensAssembly = Assembly.GetExecutingAssembly().GetReferencedAssemblies().First(obj => obj.Name.Equals("Siemens.Engineering"));
  string version = siemensAssembly.Version.ToString(2);

  // Set key and values
  string keyFullName = $@"SOFTWARE\Siemens\Automation\Openness\{version}\Whitelist\{fileInfo.Name}\Entry";
  RegistryKey key = Registry.LocalMachine.CreateSubKey(keyFullName);
  if (key == null)
  {
    throw new Exception("Key note found: " + keyFullName);
  }
  key.SetValue("Path", exePath);
  key.SetValue("DateModified", lastWriteTimeUtcFormatted);
  key.SetValue("FileHash", convertedHash);
}

Adminrechte müssen da sein. Somit muss man Visual Studio als Administrator starten.

Von |2019-07-22T13:51:34+02:002019-03-26|TIA Portal|

API Showcase auf GitHub

Ich habe hier mal ein kleines Repo erstellt um verschiedene APIs zu zeigen.
Wie gewohnt mit fertigem Programmcode. Zusätzlich sind kleine Präsentationen enthalten um einen kleinen Überblick zu geben.

Derzeit sind enthalten:

  • EPLAN Scripting
  • EPLAN API
  • Siemens TIA Portal Openness

Also falls Jemand Interesse hat, einfach bei mir melden :^)

Von |2019-03-26T13:38:17+01:002019-03-26|C#, EPLAN, EPLAN-API, TIA Portal|

Spotify embed responsive

Ich mag Spotify, hab zwar kein bezahltes Abo, aber um schnell mal Musik nachzuschlagen ist es super.
Da nehme ich auch gerne mal die Werbung in kauf.

Für ein aktuelles Projekt möchte ich den Spotify-Player einbinden. Dafür gibt es hier einen schönen Generator.

Leider ist aber der Iframe nicht responsive. Nach bisl googlen und selbst im Javascript zu frickeln, bin ich auf diese Lösung gekommen:

$(document).ready(function() {
  /* Make Spotify fit initial layout */
  respondify();
});


$(window).resize(function() {
  /* Make Spotify fit layout on resize */
  respondify();
});


function respondify() {
  $('body').find('iframe[src*="spotify.com/"]').each(function() {
    var w = $(this).parent(1).width();
    $(this).css('width', w + 'px');
    
    var h = $(window).height();
    $(this).css('height', h + 'px');

    $(this).attr('src',$(this).attr('src'));
  });

}

Das ganze könnt ihr hier auf CodePen auch anschauen.

Von |2019-03-18T11:33:19+01:002019-03-18|Coding|

Festival Holledau App – 1.2

Ein kleines feines Update gab es schon am 17.02.19 mit diesen Features:

  • Runde Bandbilder in der Liste: Damit es besser rund läuft!
  • Bandbild zoombar: Jetzt noch näher an den Bands sein!
  • Bands 2012-2013 hinzugefügt: Endlich wissen wer, wann gespielt hat!

Bin großer Fan von FFImageLoading geworden… werde da noch einiges nutzen.

Mir fehlt grad bisl die Zeit weiter daran zu arbeiten… Aber es steht noch einiges auf der Liste.

Von |2019-12-05T09:07:10+01:002019-03-15|Coding, Festival Holledau App, Projekte, Xamarin|

Syntax Highlightning

Denke es ist schon das dritte oder vierte Plugin … Leider wird Crayon nicht mehr weiterentwickelt.
Somit hab ich mich mal für ne Alternative umgesehen und EnlighterJS gefunden. Es gibt auch WordPress-Plugin dafür.

Das Theme gefällt mir gut und kann man auch anpassen. Es ist auch ziemlich schnell. Und das Wichtigste: Es wird aktiv weiterentwickelt.

Es gibt noch einen Bug mit dem Horizontalen-Scrollbalken… aber der wird bald gefixed.

Von |2019-03-14T10:20:11+01:002019-03-14|Allgemein|
Nach oben