Error
There was a problem with your SQL connection - Please contact the administrator
There was a problem with your SQL connection - Please contact the administrator
Prototype
McLaurin_F32(r, rStart, rEnd)
Description
McLaurin series calc: rStart and rEnd (inclusive) defines the start float and the end floats, say you have three r0, r1, r2, then calculation is: r = r0rr + r1*r + r2.
r is the buffer position used for the indeterminate value and for the result.
Return
Nothing
Code Example
The following code example uses the McLaurin_F32 function.
The SMK900.evi file used for this example can be downloaded at the bottom of this page.
/* Example Code
* LinInterpol_F32
*
* get buffer indexes rS, rE and r
* set buffer in memory
* mclaurin value at r
* return 0x00 (lookup pas ok) or 0x01 (lookup ok)
*
*/
#include "SMK900.evi"
#define SENSORCODE 0x01
function exec_aircmd(){
local rxLen;
local useParams;
local rS,rE,r;
local i;
local result;
rxLen=GetAirBuf(0, 0, 20);
/*if(rxLen>=15){ // 1 byte for paketID + 14 bytes of payload (6 bytes for indexes and minimum 8 bytes for buffer)
useParams=true;
rS=GetBuffer_16(1);
rE=GetBuffer_16(3);
r=GetBuffer_16(5);
for(i=7;i<rxLen;i++){
SetBuffer(i-7,GetBuffer_S8(i),1);
}
}else{*/
useParams=false;
rS=4;
rE=8;
r=0;
SetBuffer_16(0,0x0000); // 1
SetBuffer_16(2,0x3F80);
SetBuffer_16(4,0x0000); // -1
SetBuffer_16(6,0xBF80);
SetBuffer_16(8,0x0000); // -2
SetBuffer_16(10,0xC000);
/*}*/
McLaurin_F32(r,rS,rE);
/*if(useParams){
SetBuffer_16(0,GetBuffer_16(r));
SetBuffer_16(2,GetBuffer_16(r+2));
Send(4);
}else{*/
if(GetBuffer_16(2)==0xC040&&GetBuffer_16(0)==0x0000){ // -3
result = 1;
}else{
result = 0;
}
SetBuffer(0,result,1);
Send(1);
/*}*/
}
function main()
{
local execType;
execType = GetExecType();
if(execType==MESHEXECTYPE_AIRCMD_bm){
exec_aircmd();
}
}