RS232cを用いた送信プログラム
RS232Cで文字列を送信するCプログラムを作成しています、がうまくいきません。OSはLINUX fedora7です。
状況は、
・RS232対応の測定機器にプログラムを使ってコードを送る
→エラー表示される(何かしら送信はされている?)。
・確認のためクロスケーブルを用いてPC-PC間で送受信を行う
→何も受信されない(受信プログラムは動作確認済みのものを使用)。
・ポートやボーレート、パリティ、フロー制御の一致は確認しました。
送信プログラムはThe Linux Serial Programming HOWTOに置かれている受信プログラムのサンプルを基に作成しました。
私のいじったプログラムに問題があるように思っていますが、その点を把握できません。
プログラミングでもそれ以外でも、何か原因に思い当たる節のある方がいましたら、御指導の程よろしくお願いします。
以下にプログラムを記します。
*キーボードから入力した文字列を送信し、eを打ち込むと終了するプログラムのつもりです…(^^;
main(){
int fd,res,;
struct termios oldtio,newtio;
char send[255];
fd = open(MODEMDEVICE, O_RDWR | O_NOCTTY );
if (fd <0) {printf("error");
perror(fd); exit(-1); }
**********************
termios設定文、省略(serial HOWTO のサンプルそのまま)
**********************
while(1){
printf("入力待ち\n");
scanf("%s",send);
printf("%s\n",send);
if( *send =='e'){
printf("終了");
break;
}
else{
res = write(fd,send,255);
send[res]=0;
printf("%s,%d\n", send,res);
}
}
tcsetattr(fd,TCSANOW,&oldtio);
}