Return Type | Function name | Arguments |
---|---|---|
hzEcode | ReadSerialSINT32 | (int&,unsigned int&,const unsigned char*,) |
Declared in file: hzCodec.h
Defined in file : hzCodec.cpp
Function Logic:
Function body:
hzEcode ReadSerialSINT32 (int& nValue, unsigned int& nLen, const unsigned char* ptr) { uint32_t val ; bool bNeg ; if (!ptr) { nValue = 0; nLen = 0; return E_ARGUMENT ; } if (!(*ptr & 0x80)) { bNeg = *ptr & 0x40; val = *ptr & 0x3f; } else { bNeg = *ptr & 0x10; nLen = (*ptr & 0x60)>>5; nLen += 2; switch (nLen) { case 2: val = ((ptr[0]& 0x0f)<<8); val += ptr[1]; break ; case 3: val = ((ptr[0]& 0x0f)<<16); val += ((ptr[1]<< 8)+ ptr[2]); break ; case 4: val = ((ptr[0]& 0x0f)<<24); val += ((ptr[1]<< 16)+(ptr[2]<< 8)+ ptr[3]); break ; case 5: _endian_import4(val, ptr) ; break ; } } nValue = bNeg ? -val : val ; return E_OK ; }