PROGRAM_NAME='Checksum' (***********************************************************) (***********************************************************) (* FILE_LAST_MODIFIED_ON: 04/05/2006 AT: 09:00:25 *) (***********************************************************) (* System Type : NetLinx *) (***********************************************************) (* REV HISTORY: *) (***********************************************************) (* $History: $ *) (***********************************************************) (* DEVICE NUMBER DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_DEVICE dvTp = 10001:1:0 (***********************************************************) (* CONSTANT DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_CONSTANT (***********************************************************) (* DATA TYPE DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_TYPE (***********************************************************) (* VARIABLE DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_VARIABLE Volatile CHAR sBoxBuffer[300] (***********************************************************) (* LATCHING DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_LATCHING (***********************************************************) (* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *) (***********************************************************) DEFINE_MUTUALLY_EXCLUSIVE (***********************************************************) (* SUBROUTINE/FUNCTION DEFINITIONS GO BELOW *) (***********************************************************) (* EXAMPLE: DEFINE_FUNCTION () *) (* EXAMPLE: DEFINE_CALL '' () *) (***********************************************************) (* STARTUP CODE GOES BELOW *) (***********************************************************) DEFINE_START (***********************************************************) (* THE EVENTS GO BELOW *) (***********************************************************) DEFINE_EVENT BUTTON_EVENT[dvTp,1] { Push: { //\x028888\x0DA2*R2*B2 Code Blue\x0D\x03 //\x028888\x0DA2*R2*B2 Code Blue\x0D\x03601\x0D //"123ABC17;" STACK_VAR VOLATILE CHAR sTmp[50],sData1[50],sData2[50] STACK_VAR VOLATILE integer iTmpSum sBoxBuffer= "$02,'123',$0D,'ABC',$0D,$03" //sBoxBuffer= "$02,'8888',$0D,'A2*R2*B2 Code Blue',$0D,$03" IF(FIND_STRING(sBoxBuffer,"$03",1)) { IF(sBoxBuffer[1] = "$02") { stack_var integer x,y sData1= MID_STRING(sBoxBuffer,2,( FIND_STRING(sBoxBuffer,"$0D",1)-2)) send_string 0,"'sData1 :',sData1" sData2= MID_STRING(sBoxBuffer,( FIND_STRING(sBoxBuffer,"$0D",1)+1),( ((FIND_STRING(sBoxBuffer,"$0D",( FIND_STRING(sBoxBuffer,"$0D",1)+1)))-(FIND_STRING(sBoxBuffer,"$0D",1)))-1)) send_string 0,"'sData2 :',sData2" for (x=1;x<=length_string(sData1);x++) { iTmpSum=sData1[x]+iTmpSum //send_string 0,"'iTmpSum :',itoa(iTmpSum)" } for (y=1;y<=length_string(sData2);y++) { iTmpSum=sData2[y]+iTmpSum } iTmpSum=2+13+13+3+iTmpSum send_string 0,"'iTmpSum :',itoa(iTmpSum)" iTmpSum=((48 + iTmpSum) - ((iTmpSum /16) * 16)) iTmpSum = (iTmpSum/16) send_string 0,"'iTmpSum :',itoa(iTmpSum)" iTmpSum=48 + iTmpSum - (iTmpSum /16) * 16 iTmpSum = (iTmpSum/16) send_string 0,"'iTmpSum :',itoa(iTmpSum)" iTmpSum=48 + iTmpSum - (iTmpSum /16) * 16 iTmpSum = (iTmpSum/16) send_string 0,"'iTmpSum :',itoa(iTmpSum)" } ELSE { GET_BUFFER_CHAR(sBoxBuffer) } } //send_string dvData, "$02,'123',$0D,'ABC',$0D,$03" } } /* DATA_EVENT[dvData] { STRING: { //sBuffer if (nVal ==0) { send_string 0,"' nVal is Zero '" } else { nVal= nVal -( (nVal/128)* 128 ) nSum= nSum + nVal send_string 0,"' Sum is =', itoa(nSum)" if (nSum == 379) { //d3 = 48 + sum - INT(sum / 16) * 16 nD3 = 48 + nSum - (nSum /16) * 16 //sum = INT(sum / 16) nSum = (nSum/16) // d2 = 48 + sum - INT(sum / 16) * 16 nD2 = 48 + nSum - (nSum /16) * 16 //sum = INT(sum / 16) nSum = (nSum/16) //d1 = 48 + sum - INT(sum / 16) * 16 nD3 = 48 + nSum - (nSum/16) * 16 } } } } */ (***********************************************************) (* THE ACTUAL PROGRAM GOES BELOW *) (***********************************************************) DEFINE_PROGRAM (***********************************************************) (* END OF PROGRAM *) (* DO NOT PUT ANY CODE BELOW THIS COMMENT *) (***********************************************************)