10 years, 1 month ago.

LANの通信プログラムでFCSエラー

LANの通信プログラムを作っていますが、FCSの値が00 00 00 00で計算されていないみたいです。その辺の何か調整が必要なのでしょうか?

プログラム的には大したことをしているわけではなく、

  1. include "EthernetInterface.h"
  2. include "UDPSocket.h"

UDPSocket client; Endpoint DataServer;

int main() { EthernetInterface eth;

pc.printf("eth.init() return = %d\n",eth.init("192.168.0.38","255.255.255.0","192.168.0.38")); eth.init(); pc.printf("eth.connect() return = %d\n",eth.connect()); client.init(); DataServer.set_address("239.168.1.1",38383); sprintf(ipaddr,"%s",eth.getIPAddress()); pc.printf("IP Address = %s\n",ipaddr);

pc.printf("Program Start\n");

while(1) { myled1 = 1; wait(0.2); myled1 = 0; wait(0.2); client.sendTo(DataServer, (char * )&Data, sizeof(Data)); } } としているだけです。なにかいい方法がないでしょうか?

1 Answer

10 years, 1 month ago.

こんにちは。

FCSに関しては詳しくないのですが、こちらのフォーラムで何度か指摘がありました。 http://developer.mbed.org/forum/mbed/topic/3741/

おそらく、frame checksumについては現状のライブラリでは実装されていないと思われます。

Accepted Answer

回答ありがとうございました。ってことは、まだ、解決してないんですかね。

基本的なところだったので、マサカと思ったのですが…。

posted by Hiroki Mihara 14 Oct 2014

いろいろ調べてみたら、チェックサムはUDPの場合、計算しないでも良いみたいですね

posted by Hiroki Mihara 19 Oct 2014