Eu estou tentando fazer uma comunicação serial do meu servidor local, então eu fiz um arquivo c ++ e o compilei para fazer a comunicação real e compilá-la com o GCC:
#include <iostream>
#include <fstream>
using namespace std;
char c = 2;
char hexdata = (c & 0xFF);
int main () {
fstream fs;
fs.open ("/dev/ttyS0", std::fstream::out | std::fstream::app);
fs << hexdata;
fs.close();
return 0;
}
Até agora, funciona e posso ler os dados enviados. Agora eu copiei para / usr / lib / cgi-bin e chamei-o de serialOut.cgi, e tentei executá-lo a partir do terminal e ele também funciona, mas quando tento abri-lo pelo navegador, ele me dá um erro interno: < href="https://i.stack.imgur.com/TJokF.png">
Emboraeutenhaoutroscriptcginomesmodiretóriofuncionandobem.Eutenteiverificaraspermissõesetudobemtambém:
-r-xr-xr-x1rootroot34408Mar3018:37serialout.cgi
Alémdisso,error.lognãotemerros.Qualéacausadesteproblemaecomopossoresolvê-lo?
EuediteimeucódigoeagoraoerroInternalServeracabou,eelemostraumamensagem,masosdadosseriaisaindanãoforamenviados.
#include<iostream>#include<fstream>usingnamespacestd;charc=2;charhexdata=static_cast<char>(c&0xFF);intmain(){fstreamfs;fs.open("/dev/ttyS0", std::fstream::out | std::fstream::app);
fs << hexdata;
fs.close();
cout << "Content-type: text/html" << endl << endl;
cout << "<html><body>Done!</body></html>";
return 0;
}
Eu tentei adicionar um alias ao / dev / no diretório real / dev /, mas ainda assim isso não resolveu nada. Qualquer ajuda apreciada.
Tags apache-http-server