Prototype
GetRegisterRAM(r, regOffset)
Description
Fetch register at regOffset, put it in r (RAM)
Return
Nothing
Code Example
The following code example uses the GetRegisterRAM function.
The SMK900.evi file used for this example can be downloaded at the bottom of this page.
/* Example Code
* GetRegisterRAM
*
* get buffer index r and regOffset and regLen
* return result of get on regLen*8 bits
*
* example VMExecuteCmd:
* cmd: |r |regOffset|regLen
* 0xfb 0x0e 0x00 0x0c 0x00 0x0e [0x?? 0x?? 0x?? = macAdress] 0x00 0x00 0x00 0x00 0x03
* rsp: 0xfb 0x08 0x00 0x2d 0x00 0xe1 0x1e [0x?? 0x?? 0x?? = macAdress]
*/
#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>=6){ // 1 byte for paketID + 5 bytes of payload (5 bytes for param)
useParams=true;
r=GetBuffer_16(1);
regOffset=GetBuffer_16(3);
regLen=GetBuffer_S8(5);
}else{
useParams=false;
r=0;
regOffset=REGISTER_ADDRESS;
regLen=3;
}
GetRegisterRAM(r, regOffset);
for(i=0;i<regLen;i++){
SetBuffer(i, GetBuffer_S8(r+i),1);
}
Send(regLen);
}
function main()
{
local execType;
execType = GetExecType();
if(execType==MESHEXECTYPE_AIRCMD_bm){
exec_aircmd();
}
}