車速に関するデータを受信しています。入力形式を制御することはできませんが、データを使用する必要があります。
データは Base64 でエンコードされた値として送信されます。どうやら、データはリトルエンディアン形式の数値として開始されたようです。現在、私のコードは次のとおりです。
public int b64ToInt(string Input){
byte[] Output = Convert.FromBase64String(Input);
Array.Reverse(Output);
if (Output.Length == 1)
{
return (int)Output[0];
}
else if (Output.Length == 2)
{
return (int)BitConverter.ToInt16(Output, 0);
}
else
{
return BitConverter.ToInt32(Output, 0);
}
}
これは、受け取ったほとんどの値で機能しますが、すべてではありません。ちなみに、この値を MPH に変換するには、1150.78 で割る必要があります。
次の値が有効です: AAB6Qg== 27.19720537374 MPH に変換されます。
次の値は機能しません: AA09 どうやら、出力配列の長さは 3 バイトで、この状況を処理する方法がわかりません。
表示されるエラー メッセージは次のとおりです。