Debian、Linuxで動作するHMIを購入しました。 HMIには、私が動作させたいシリアルポートがあります。私のプロジェクトには、数秒間DTRを高く設定して解決された特定の問題がありました。次のスクリプトを試しました。
#!/bin/bash
MySerialPort="/dev/ttyS0"
MyLatency="2"
echo "#include <fcntl.h>
#include <sys/ioctl.h>
main()
{ int fd; fd = open(\"${MySerialPort}\",O_RDWR | O_NOCTTY );
int RTS_flag; RTS_flag = TIOCM_RTS;
ioctl(fd,TIOCMBIS,&RTS_flag);
sleep (${MyLatency});
ioctl(fd,TIOCMBIC,&RTS_flag);
close(fd); } "
しかし、これはうまくいかず、次のエラーが発生しました。
私がすでに試したスクリプトを修正したり、他のスクリプトを作成する方法についてのヒントを与えることができる人はいますか?
修正する
アップデート2
スクリプト:
分析スクリプト:
申し訳ありません。イメージです。仮想マシンからコピーできないからです。
よろしくお願いします!
ベストアンサー1
シェルスクリプトとCプログラムを混同しているようです。 「Cスクリプト」という概念は実際には存在しません。スクリプトが実行するすべての作業は、Cソースコード(つまり、#include
CPP起動コマンドから関数の閉じ括弧までのすべてmain
)をコンソールに印刷することです。
エラーメッセージは、シェルスクリプトをコンパイルしようとしているのと少し似ています。
代わりにやるべきことは、Cコードをコンパイルして結果のバイナリを実行することです。