Some refactoring after static code analysis

This commit is contained in:
2026-02-08 12:48:29 +01:00
parent bdaaf1fe9f
commit 69ef2c6904
43 changed files with 3244 additions and 1097 deletions

View File

@@ -12,12 +12,12 @@ VAR_IN_OUT
END_VAR
VAR
// Card inputs
_stStatus AT %I* : ST_SerialStatus;
_byDataIn AT %I* : ARRAY[0..21] OF BYTE;
stStatus AT %I* : ST_SerialStatus;
//abyDataIn AT %I* : ARRAY[0..21] OF BYTE;
// Card outputs
_stCtrl AT %Q* : ST_SerialCrl;
_byDataOut AT %Q* : ARRAY[0..21] OF BYTE;
stCtrl AT %Q* : ST_SerialCrl;
abyDataOut AT %Q* : ARRAY[0..21] OF BYTE;
// Internal temp setpoint
_rTempSetpoint : REAL;
@@ -25,9 +25,6 @@ VAR
// Send trigger
_xSend : BOOL;
// Send temp test
_xTempTest : BOOL;
// Init trigger
_xInit : BOOL;
END_VAR
@@ -48,21 +45,21 @@ END_IF
// Init card on first run
IF _xInit THEN
_xInit := FALSE;
_stCtrl.bInitRequest := 1;
stCtrl.bInitRequest := 1;
END_IF
IF _stStatus.bInitAccepted THEN
_stCtrl.bInitRequest := 0;
IF stStatus.bInitAccepted THEN
stCtrl.bInitRequest := 0;
END_IF
// Send
IF _xSend THEN
_xSend := FALSE;
_stCtrl.bTransmitRequest := 1;
stCtrl.bTransmitRequest := 1;
END_IF
IF _stStatus.bTransmitAccepted THEN
_stCtrl.bTransmitRequest := 0;
IF stStatus.bTransmitAccepted THEN
stCtrl.bTransmitRequest := 0;
END_IF
// Debug test
@@ -91,10 +88,19 @@ VAR
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[// Calculate sum
<ST><![CDATA[// Check end index
IF uiEndIndex > 21 THEN
byHigh := 0;
byLow := 0;
RETURN;
END_IF
// Calculate sum
{analysis -81}
FOR _uiCounter := uiStartIndex TO uiEndIndex DO
_dwChecksum := _dwChecksum + _byDataOut[_uiCounter];
_dwChecksum := _dwChecksum + abyDataOut[_uiCounter];
END_FOR
{analysis +81}
// Use lower bytes
_byHigh := SHR(_dwChecksum.%B0 AND 16#F0, 4);
@@ -115,36 +121,31 @@ VAR_INPUT
END_VAR
VAR
_dwTemp : DWORD;
_sTemp : STRING(4);
_byHigh : BYTE;
_byLow : BYTE;
_sHexString : STRING(4);
_sTemp : STRING;
END_VAR
]]></Declaration>
<Implementation>
<ST><![CDATA[// Convert temperature
_dwTemp := REAL_TO_DWORD(rTemp * 10)*10;
_dwTemp := REAL_TO_DWORD(rTemp * 10 )*10;
_sTemp := DWORD_TO_STRING(_dwTemp);
_byDataOut[0] := 16#02; // STX
_byDataOut[1] := 16#31; // Command code
_byDataOut[2] := _sTemp[0];
_byDataOut[3] := _sTemp[1];
_byDataOut[4] := _sTemp[2];
_byDataOut[5] := _sTemp[3];
_byDataOut[6] := 16#03; // ETX
abyDataOut[0] := 16#02; // STX
abyDataOut[1] := 16#31; // Command code
abyDataOut[2] := _sTemp[0];
abyDataOut[3] := _sTemp[1];
abyDataOut[4] := _sTemp[2];
abyDataOut[5] := _sTemp[3];
abyDataOut[6] := 16#03; // ETX
M_CalcChecksum(
uiStartIndex:= 1,
uiEndIndex:= 5,
byHigh=> _byDataOut[7],
byLow=> _byDataOut[8]);
byHigh=> abyDataOut[7],
byLow=> abyDataOut[8]);
_byDataOut[9] := 16#0D; // <CR>
abyDataOut[9] := 16#0D; // <CR>
_stCtrl.byOutputLength := 10;]]></ST>
stCtrl.byOutputLength := 10;]]></ST>
</Implementation>
</Method>
</POU>