| 受け手側の処理が低速で、色々頑張った結果ウェイトを入れるしか無い場合も
多々あると思います。
>serialPort1.Write(ByteData, 0, iCnt);
>Thread.Sleep(100);
上記ならまだいい方で
for(int i = 0; i < ByteData.length; i++){
char[] sndChar = new char[1]{ByteData[i]};
serialPort1.Write(sndChar , 0, 1);
Thread.Sleep(10);
}
1文字づつウェイトいれたら動いたなんて経験もあります。
おそらくNC工作機との事なので、そんな事はないと思いますが。
古いDOSだと動くと言うのも、単純にPCのスペックが上がって
送信間隔が早いからでしょうし、受け手の処理がわからない以上
理屈じゃない手法もやむなしかもしれませんね。 |