boolean GetAllChanelValueFromPacket(BowlerPacket * Packet) { int32_t * data = (int32_t *) (&Packet->use.data[1]); if (getAllChanelValueHWPtr != NULL) { int i; int32_t tmp; getAllChanelValueHWPtr(data); for (i = 0; i < GetNumberOfIOChannels(); i++) { tmp = data[i]; if(isOutputMode(GetChannelMode(i))==false){ setDataTableCurrentValue(i,tmp); }else{ if(GetChannelMode(i) == IS_SERVO){ tmp = GetServoPos(i); }else if(GetChannelMode(i)== IS_UART_RX){ setDataTableCurrentValue(i,tmp); }else{ tmp = getBcsIoDataTable(i)->PIN.currentValue; } } set32bit(Packet, tmp, (i*4)+1); } Packet->use.data[0]=(GetNumberOfIOChannels()); Packet->use.head.RPC=GetRPCValue("gacv"); Packet->use.head.DataLegnth = 4+1+(GetNumberOfIOChannels()*4); } else return false; FixPacket(Packet); return true; }
BOOL GetAllChanelValueFromPacket(BowlerPacket * Packet){ INT32 * data = (INT32 *)(Packet->use.data); if(getAllChanelValueHWPtr!=NULL){ int i; INT32 tmp; getAllChanelValueHWPtr((INT32 * )Packet->use.data); for(i=0;i<GetNumberOfIOChannels();i++){ tmp = data[i]; getBcsIoDataTable()[i].PIN.currentValue = tmp; set32bit(Packet,tmp,i*4); } Packet->use.head.DataLegnth = 4+GetNumberOfIOChannels()*4; }else return FALSE; FixPacket(Packet); return TRUE; }