There was a problem with your SQL connection - Please contact the administrator
Prototype
CompBuffer_64 (r1, r2)
Description
Compare the values of two int64 stored in the buffer.
Return
return buffer[r1]>buffer[r2]?1 : (buffer[r1] == buffer[r2]?0 : -1 )
Code Example
The following code example uses the CompBuffer_64 function.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /* Example Code * CompBuffer_64 * * get buffer indexes r1 and r2 * set buffer in memory * if params used * compare buffer[r1] to buffer[r2] * return result of compare (0xFF if "<", 0x00 if "=" or 0x01 if ">") on 8 bits * else * compare buffer[r1] to buffer[r2], buffer[r1] to buffer[r1] and buffer[r2] to buffer[r1] * return results of 3 compares on 3*8 bits * * example VMExecuteCmd: * cmd: |r1 |r2 |buffer * 0xfb 0x0e 0x00 0x0c 0x00 0x0e [0x?? 0x?? 0x?? = macAdress] 0x00 0x00 0x01 0x00 0x01 0x01 0x02 0x02 0x03 0x03 0x04 0x04 0x05 * rsp: 0xfb 0x08 0x00 0x2d 0x00 0xe1 0x1e 0xff */ #include "SMK900.evi" #define SENSORCODE 0x01 function exec_aircmd(){ local rxLen; local useParams; local idx1,idx2; local i; local result1,result2,result3; rxLen=GetAirBuf(0, 0, 20); if (rxLen>=13){ // 1 byte for paketID + 12 bytes of payload (4 bytes for buffer indexes and minimum 8 bytes for buffer) useParams= true ; idx1=GetBuffer_16(1); idx2=GetBuffer_16(3); for (i=5;i<rxLen;i++){ SetBuffer(i-5,GetBuffer_S8(i),1); } } else { useParams= false ; idx1=0; idx2=8; SetBuffer_16(0,0x0000); SetBuffer_16(2,0x9000); SetBuffer_16(4,0x5678); SetBuffer_16(6,0x1234); SetBuffer_16(8,0x6789); SetBuffer_16(10,0x2345); SetBuffer_16(12,0x0001); SetBuffer_16(14,0x0000); } result1 = CompBuffer_64(idx1,idx2); if (useParams){ SetBuffer(0,result1,1); Send(1); } else { result2 = CompBuffer_64(idx1,idx1); result3 = CompBuffer_64(idx2,idx1); SetBuffer(0,result1,1); SetBuffer(1,result2,1); SetBuffer(2,result3,1); Send(3); } } function main() { local execType; execType = GetExecType(); if (execType==MESHEXECTYPE_AIRCMD_bm){ exec_aircmd(); } } |