ein Raspberry bekommt über TCP einen STRING mit Daten, die duch ein ',' getrennt sind. Die Werte würde ich gern in einem ARRAY ablegen.
Bsp.:
Folgendes hab ich mir im Internet "zusammengesucht":
Zuerst such ich nach 'GPGSA'
FUNCTION_BLOCKMessageVAR_INPUT
  sRxData: STRING(255);
  sFind: STRING(255);END_VARVAR_OUTPUT
  sMessage: STRING(255);END_VARVAR
  iCurPos: INT;
  iPosEnd: INT;
  sTemp: STRING(255);END_VAR------------------------------------------------------------------iCurPos :=FIND(sRxData, sFind);IFiCurPos=2THEN
  sTemp :=sRxData;
  iPosEnd :=FIND(sTemp, '$L');
  sMessage :=MID(sTemp, iPosEnd, 1);END_IF
als nächstes die Werte in dem zuvor ermittelten STRING in ein ARRAY ablegen:
FUNCTION_BLOCKDATAVAR_INPUT
  sInput: STRING(255);END_VARVAR_OUTPUT
  DATA: ARRAY [1..50] OFSTRING;END_VARVAR
  i: INT;
  sTemp: STRING(255);
  iPos: INT;
  iLenght: INT;    END_VAR------------------------------------------------------------------sTemp :=sInput;FORi:=1TO45DO
  iPos :=FIND(sTemp, ',');
  DATA[i] :=LEFT(sTemp, iPos-1);
  IF(iPos=0)THEN
    DATA[i] :=sTemp;
    sTemp :='';
  END_IF
  sTemp :=RIGHT(sTemp, LEN(sTemp)-iPos);END_FOR
Bei GPGSA funktionier es, bei BESTPOSA bekomm ich immer einen Ausnahmefehler, dass die CPU Load über 95% ist..
Was mach ich falsch? Gibt es eine bessere Möglichkeit?
Vielen Dank vorab!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo zusammen,
ein Raspberry bekommt über TCP einen STRING mit Daten, die duch ein ',' getrennt sind. Die Werte würde ich gern in einem ARRAY ablegen.
Bsp.:
Folgendes hab ich mir im Internet "zusammengesucht":
Zuerst such ich nach 'GPGSA'
als nächstes die Werte in dem zuvor ermittelten STRING in ein ARRAY ablegen:
Bei GPGSA funktionier es, bei BESTPOSA bekomm ich immer einen Ausnahmefehler, dass die CPU Load über 95% ist..
Was mach ich falsch? Gibt es eine bessere Möglichkeit?
Vielen Dank vorab!