PNI TCM User Manual
Page 71
![background image](/manuals/373140/71/background.png)
PNI Sensor Corporation
DOC#1014688 r06
TCM User Manual
– July 2013
Page 66
s wi t ch( mSt ep)
{
c ase 1:
{
/ / wai t f or l engt h by t es t o be r ecei v ed by t he s er i al obj ec t
i f ( i nLen >= 2)
{
/ / Read bl oc k wi l l r et ur n t he number of r eques t ed ( or av ai l abl e)
/ / byt es t hat ar e i n t he ser i al obj ec t s i nput buf f er .
/ / r ead t he by t e c ount
mSer i al Por t - >ReadBl oc k( mI nDat a, 2) ;
/ / byt e count i s ALWAYS t r ans mi t t ed i n bi g endi an, c opy by t e
/ / c ount t o mExpec t edLen t o nat i v e endi aness
mExpec t edLen = ( mI nDat a[ 0] << 8) |
mI nDat a[ 1] ;
/ / Ti c ks i s a t i mer f unct i on. 1 t i ck = 10ms ec .
/ / wai t up t o 1/ 2s f or t he compl et e f r ame ( mEx pect edLen) t o be
/ / r ec ei ved
mTi me = Ti ck s( ) + 50 ;
mSt ep++ ;
/ / got o t he next s t ep i n t he pr oc es s
}
br eak ;
}
c ase 2:
{
/ / wai t f or ms g compl et e or t i meout
i f ( i nLen >= mExpec t edLen - 2)
{
UI nt 16 c r c , cr cRec ei v ed;
/ / c al cul at ed and r ec ei ved cr cs .
/ / Read bl oc k wi l l r et ur n t he number of
/ / r equest ed ( or avai l abl e) byt es t hat ar e i n t he
/ / s er i al obj ect s i nput buf f er .
mSer i al Por t - >ReadBl oc k( &mI nDat a[ 2] ,
mExpec t edLen - 2) ;
/ / i n CRC ver i f i cat i on, don' t i nc l ude t he CRC i n t he r ec al c ul at i on
( - 2)
c r c = CRC( mI nDat a, mExpec t edLen - 2) ;
/ / CRC i s al so ALWAYS t r ans mi t t ed i n bi g endi an
c r cRec ei ved = ( mI nDat a[ mExpec t edLen - 2] <<
8) | mI nDat a[ mEx pect edLen - 1] ;
i f ( c r c == cr cRec ei ved)
{
/ / t he c r c i s cor r ec t , so pas s t he f r ame up f or pr oc es si ng.
i f ( mHandl er ) mHandl er -
>Handl eComm( mI nDat a[ 2] , &mI nDat a[ 3] , mEx pect edLen - kPac ket Mi nSi z e) ;
}
el se
{
/ / c r c ' s don' t mat ch so c l ear ever y t hi ng t hat i s c ur r ent l y i n t he
/ / i nput buf f er si nc e t he dat a i s not r el i abl e.
mSer i al Por t - >I nCl ear ( ) ;
}