関数に uint8_t として渡す必要がある float 変数があります。
float 元の値に戻すにはどうすればよいですか。
コード:
bool SetAnalog(uint8_t number, float voltage, MessagePriority priority, Callback clbck)
{
uint8_t args[2];
args[0] = number;
memcpy(&(args[1]),&voltage,sizeof(float));
PTCLoopOutMessage* message = parent()->GetLoopOutMessage(this,
this->address(),
_OutputVoltage,
"DACVoltage",
args,
sizeof(args),
Device,
priority);
message->SetCallback(clbck);
return ProcessOutMessage(message);
}
uint8_t 配列から float の元の値を取得しようとしており、probe[channel] に割り当てる必要があります。
uint8_t channel = message->GetOutMessage()->GetData()->data[0];
unsigned char* value = &message->GetOutMessage()->GetData()->data[1];
memcpy(&__output.output.probe[channel].dac, value, sizeof(float));
私は常に値を 0 として取得します。
助けてください