PowerShell を使用して、ViewSonic ディスプレイとのシリアル ポート通信をセットアップしようとしています。オンまたはオフのいずれかの表示ステータスの要求を送信し、9 桁の応答を取得する必要があります。オンの場合は 56 48 49 114 108 48 48 49 13 の応答、オフの場合は 56 48 49 114 108 48 48 48 13 の応答のいずれか コードを実行すると、1 桁の応答しか得られない 2 番目の読み取りを追加すると、残りの 8 が得られます。この奇妙な動作を引き起こしている可能性のあるアイデアはありますか? これを行うためのより良い方法に関する提案はありますか? 以下のコードと結果を参照してください。
PS C:\Users\james\Desktop> [Byte[]] $request = 0x38, 0x30, 0x31, 0x67, 0x6C, 0x30, 0x30, 0x30, 0x0D
$portreturn = [System.Byte[]]::CreateInstance([System.Byte], 9)
$port = new-Object System.IO.Ports.SerialPort COM3, 9600, None, 8, one
$port.Open()
$port.Write($request, 0, $request.Count)
$port.Read($portreturn, 0, $portreturn.Length)
Write-Host "portreturn1" $portreturn -foreground black -BackgroundColor white
$port.Read($portreturn, 0, $portreturn.Length)
Write-Host "portreturn2" $portreturn -foreground black -BackgroundColor white
$port.Close()
1 ポートリターン1 56 0 0 0 0 0 0 0 0
8 ポートリターン2 48 49 114 108 48 48 49 13 0
PS C:\Users\james\Desktop> C:\Users\james\Desktop\VStest2a.ps1
'C:\Users\james\Desktop\VStest2a.ps1:4' [DBG] で行ブレークポイントをヒット: PS C:\Users\james\Desktop>>
[DBG]: PS C:\Users\james\Desktop>>
[DBG]: PS C:\Users\james\Desktop>> 9
[DBG]: PS C:\Users\james\Desktop>> portreturn1 56 48 49 114 108 48 48 49 13
[DBG]: PS C:\Users\james\Desktop>>
わかりやすくするために画像にリンクします。 スクリーンショット