GetRegisterRAMBUF

You are here:
Estimated reading time: < 1 min
Go back to the VM operations list

Prototype

GetRegisterRAMBUF(r, regOffset)

Description

Fetch register at regOffset, put it in r (RAMBUF)

Return
Nothing

Code Example

The following code example uses the GetRegisterRAMBUF function.

The SMK900.evi file used for this example can be downloaded at the bottom of this page.
/* Code Example
* GetRegisterRAMBUF
*
* 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;
	}
	
	GetRegisterRAMBUF(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();
	}
}

Go back to the VM operations list

Attachments

Was this article helpful?
Dislike 0
Views: 69
Go to Top