PC間のテキストファイル転送をCOM通信でしたい

前提

設備付属の専用PC(PC-A)と、一般PC(PC-B)があります。
PC-A:
Windows10Pro
スタンドアロン運用でLAN接続が不可能。
ソフトウェアのインストールが不可。
PC-B:
Windows10Enterprise。
グループポリシーによりUSBメモリ等の外部ストレージがブロックされ認識できない。

PC-AとPC-B間のCOM通信は可能。RS232Cや、BluetoothのSPPが使えそう。

実現したいこと

PC-Aで生成されるテキストファイルを、PC-Bへ転送したい。
手段は以下のどちらでも良い。
1.ファイルそのものを転送する。
2.ファイル内の文字列を転送する。
ここで言うテキストファイルは、タブ区切りtxtやカンマ区切りcsvを意味する。

今回は、2.ファイル内の文字列を転送する。をやってみた。

発生している問題・エラーメッセージ

エラーはない。
改行が無くなり1行で転送されてしまう事が問題。

該当のソースコード

Windows PowerShell

ソースコード PC-A(送信側)

$serialPorts = [System.IO.Ports.SerialPort]::GetPortNames(); $str = Get-content "C:\temp\test.csv" #echo($str) $com = New-Object System.IO.Ports.SerialPort "COM8", 4800, ([System.IO.Ports.Parity]::Odd),7,([System.IO.Ports.StopBits]::One) $com.WriteBufferSize = 4800 $com.DtrEnable = $true $com.RtsEnable = $true $com.Handshake=[System.IO.Ports.Handshake]::RequestToSend $com.NewLine = [Char]0x0D + [Char]0x0A $com.Encoding=[System.Text.Encoding]::GetEncoding("Shift_JIS") $com.Open() Start-Sleep -m 500 $com.WriteLine($str) Start-Sleep -m 500 $com.Close() $com.Dispose()

#ソースコード PC-B(受信側)

$com = New-Object System.IO.Ports.SerialPort "COM7" $com.Encoding=[System.Text.Encoding]::GetEncoding("Shift_JIS") $com.Open() Start-Sleep -m 500 $str = $com.ReadLine() #$str = $com.Read echo ($str) $com.Close() $com.Dispose() pause

試したこと

PC-B(受信側)は、他の言語(LabVEIW,VBA)で受信させてみても同様、改行が無くなってしまう。
PC-A(送信側)で、echo($str)によりテキストファイルから読み取った内容の表示させたところ、改行されていた。
よって改行が消えるのは送信時か受信時だと思う。

補足事項

PC-Aにソフトウェアのインストールが不可のため、Windows10標準のPowerShellを使ってみました。言語にこだわりはありません。
初歩的な質問でお恥ずかしい限りです。アドバイスいただけたら幸いです。

コメントを投稿

0 コメント