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();
}
}