Eu comprei uma IHM rodando no Debian, Linux. Esta HMI tem uma porta serial que estou tentando manipular. Estou com um problema específico no meu projeto que pode ser resolvido deixando o DTR alto por alguns segundos. Já tentei o seguinte script:
#!/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); } "
No entanto, isso não funcionou, ele me deu os seguintes erros:
Alguém pode corrigir o script que eu já tentei ou me dar alguma dica para criar outro?
ATUALIZAR
ATUALIZAÇÃO 2
Escrever roteiro:
Analisar roteiro:
Desculpe é uma imagem, isso é porque eu não posso copiar de uma VM.
Desde já, obrigado!
Receio que você esteja misturando scripts de shell e programas C. O conceito de um "script C" não existe realmente, e o que seu script tenta fazer é simplesmente imprimir o código-fonte C (ou seja, tudo, desde a
#include
instrução CPP inicial até o colchete de fechamento damain
função) em seu console.As mensagens de erro parecem um pouco como se você tentasse compilar seu script de shell.
O que você deve fazer é compilar seu código C e executar o binário resultante.