NORTiプログラムでTCP/IP通信の問題⇒解決
5月になりました。ゴールデンウィークです。
あ〜あ休みたいです。が、お仕事がまだ残ってました。
仕様変更やら、ハード的な不具合やらで安定するまで
ゴールデンウィークのお休みはお預けです。(T_T)
NORTiプログラムでのTCP/IP通信の問題は解決しました。
原因は、TCP/IP通信でLANが繋がっていることを確認するために
定期的にチェック用のデータを送信しているのですが
これが、LANケーブルを抜かれても、おかまいなしで
データを定期的に送ろうとしていたことが原因でした。
送信用データがバッファを溢れさせて、
バッファクリアがされていなかったので
windowサイズが0になっていました。
ドライバー内でつながっているかいないかを判断して
つながっている場合は送信、繋がっていない場合は
送信しないで、バッファをクリアして接続待ちにすること
で解決しました。
(しかしドライバー内で接続チェックできるのなら
定期的にデータ送信する必要がないようにも思いますが...)
これで、LANケーブルを繋ぐとTCP/IP通信が復活して
データ送信できるようになりました。
それとですね、後少し問題がでました。
SH系は、アライメントの問題があって通信するデータ構造に
注意する必要があります。
なんど送信しても、正しくデータが受け取れない場合があり
発覚したのですが、SHの仕様書にちゃんと書かれてました。
よく仕様書を読んでから(常識)作りましょう。