SetBufferAtZeroTo_16

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

Prototype

SetBufferAtZeroTo_16 (val)

Description

Write an (int16)val to buffer at index 0

buffer[0] = val;

Return
Nothing

Code Example

The following code example uses the SetBufferAtZeroTo_16 function.

The SMK900.evi file used for this example can be downloaded at the bottom of this page.
/* Example Code
* SetBufferAtZeroTo_16
*
* get val
* set buffer[0] to val
* if params used 
* 	return content of buffer[0] on 16 bits
* else 
* 	return 0x00 (buffer[0] != val) or 0x01 (buffer[0] == val) on 8 bits
*
* example VMExecuteCmd:
* cmd: 															   |val
*		0xfb 0x0e 0x00 0x0c 0x00 0x0e [0x?? 0x?? 0x?? = macAdress] 0x00 0x00
* rsp: 	0xfb 0x08 0x00 0x2d 0x00 0xe1 0x1e 0x01
*/


#include "SMK900.evi"

#define SENSORCODE 0x01
	
function exec_aircmd(){
	local rxLen;
	local useParams;
	local val;
	local result;
	
	rxLen=GetAirBuf(0, 0, 20);
	
	if(rxLen>=3){ // 1 byte for paketID + 2 bytes of payload (2 bytes for param)
		useParams=true;
		val=GetBuffer_16(1);
	}else{	
		useParams=false;
		val=-1;
	}
	
	SetBufferAtZeroTo_16(val);
	
	if(useParams){
		Send(2);
	}else{
		if(GetBuffer_16(0)==-1){
			result = 1;
		}else{
			result = 0;
		}
		SetBuffer(0,result,1);
		Send(1);
	}
}

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: 67
Go to Top