There was a problem with your SQL connection - Please contact the administrator
Prototype
SetRegisterRAMBUF (r, regOffset)
Description
Put content of r in register at regOffset (RAMBUF)
Return
Nothing
Code Example
The following code example uses the SetRegisterRAMBUF 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 80 81 82 83 | /* Example Code * SetRegisterRAMBUF * * get buffer index r and regOffset and regLen * set buffer in memory * set RAMBUF[regOffset] to buffer[r] * get RAMBUF[regOffset] * if params used * return result of get on regLen*8 bits * else * return 0x00 (set/get not ok) or 0x01 (set/get ok) on 8 bits * * example VMExecuteCmd: * cmd: |r |regOffset|regLen|buffer * 0xfb 0x0e 0x00 0x0c 0x00 0x0e [0x?? 0x?? 0x?? = macAdress] 0x00 0x00 0x03 0x00 0x01 0x01 * rsp: 0xfb 0x08 0x00 0x2d 0x00 0xe1 0x1e 0x01 */ #include "SMK900.evi" #define SENSORCODE 0x01 function exec_aircmd(){ local rxLen; local useParams; local r, regOffset, regLen; local i; local result; rxLen=GetAirBuf(0, 0, 20); if (rxLen>=7){ // 1 byte for paketID + 6 bytes of payload (5 bytes for param + minimum 1 byte of buffer) useParams= true ; r=GetBuffer_16(1); regOffset=GetBuffer_16(3); regLen=GetBuffer_S8(5); for (i=6;i<rxLen;i++){ SetBuffer(i-6,GetBuffer_S8(i),1); } } else { useParams= false ; r=0; regOffset=REGISTER_NWKID; regLen=1; SetBuffer(0,0x01,1); //SetBuffer(1,0x00,1); } /*GetRegisterRAMBUF(0,3); // recupere le nwkID SetBuffer(1,0x02,1); // init nouvelle val du nwkID SetRegisterRAMBUF(1,3); // ecrit nouvelle val de nwkID dans RAMBUF GetRegisterRAMBUF(2,3); // recupere le nwkID Send(3);*/ SetRegisterRAMBUF(r,regOffset); GetRegisterRAMBUF(0,regOffset); if (useParams){ Send(regLen); } else { if (GetBuffer_S8(0)==0x01){ result = 1; } else { result = 0; } SetBuffer(0,result,1); Send(1); } } function main() { local execType; execType = GetExecType(); if (execType==MESHEXECTYPE_AIRCMD_bm){ exec_aircmd(); } } |