IPS_RunScriptEx übergibt falsche Werte nach Update auf IPSymcon 6.3

Hallo.
Ich empfange Daten über eine RS232 und überprüfe dannach den CRC!
Nach Update von IPS 6.2 nach IPS 6.3 bekomme ich ganz off CRC Errors.

Habe jetzt mal die Buffer überprüft und gesehen das die Übergebenen Werte in „IPS_RunScriptEx“ bei IPS 6.3 nicht richtig ankommen.

Hier mein Script zur übergabe:

IPS_LogMessage ("AEConRec", "Msg1:" . $send_str . " Len1:" . strlen($send_str));
		  IPS_LogMessage ("AEConRec", "Msg1:" . string2hex($send_str) . " Len1:" . strlen($send_str));
          $ScriptId = IPS_GetScriptIDByName ("SolarRec", 16000);		  
          IPS_RunScriptEx($ScriptId, Array("id" => ($inst_id), "msg" => ($send_str), "str" => (string2hex($send_str))));

In SolarRec lese ich die Daten aus:
Hier der Unterschied zwischen IPS6.2 und IPS 6.3:
IPS6.2:


IPS6.3

Kann mir einer Erklären was sich geändert hat oder mach ich etwas falsch?
Danke.
BYE
Thomas

Um das bewerten zu können, müßte man erstmal wissen was macht das Script welches die Werte bekommt :wink:

Schaut sehr nach ein UTF8 Thema aus.
Ist der Spezialschalter CompatibilitySloppyUTF8 an?
Gab da Änderungen wegen UTF8.
Wäre vielleicht besser die Daten vorher utf8 zu kodieren und dann im anderen Script wieder zu dekodieren.

Oder gleich aus der RegVar oder, wo die Daten herkommen, zu verbreiten ohne ein RunScript zu benutzen.
Michael

Hallo.
Ja das ist es. Hat sich zu IPS 6.3 geändert „Spezialschalter CompatibilitySloppyUTF8“.
Ich will aber den Spezialschalter nicht ändern.
Jetzt habe ich das Problem das ich über RS232 die Daten bekomme und dann in ein Buffer geben.
Wenn die msg vollständig übertragen ist dann rufe ich das Script auf.

Jetzt will ich die daten in Hex übertragen.
Wie mache ich es am besten?

  1. Jedes Zeichen beim Empfang von RS232 nach hex invertieren und in ein String speicher?
  2. Oder den epfangen Buffer nach hex konvertieren und in ein String speichern?

Vielen Dank.
BYe
Thomas

Einfach in dem Script weiterarbeiten und gar kein anderes aufrufen.
Ansonsten keine von deiner Lösung. Sonder mit utf8encode und utf8decode arbeiten.
Michael
PS: Ist der Spezialschalter jetzt an oder aus?

Oder bin2hex und hex2bin verwenden.

paresy

Ja habe es jetzt mit hex2bin gemacht.
Danke.