Zápis a čtení do sériového portu C++   zodpovězená otázka

C++/C

Nejraději programuji ve VB.NET, ale zrovna pracuji na programu pro linuxový router ASUS 500gP. Program je nutné napsat v C++. Snažím se nejprve zapsat do sériové linky a potom vyčíst odpověď.

#include <stdio.h>
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
char *retezec;
int delka;
filebuf com;
com.open("/dev/usb/tts/0", ios::app );
// zápis
ostream out(&com);
out.write("TEPL01",6);
out.flush();
// čtení
system("PAUSE");
istream in(&com);
in.seekg (0, ios::end);
delka = in.tellg();
in.seekg (0, ios::beg);
retezec= new char [delka];
in.read(retezec,delka);
cout<<"pocet znaku ke cteni= "<<delka<<'\n';
cout<<"retezec="<<retezec<<'\n';
return 0;
}

Kde dělám chybu? Jak je možné jednoduše pracovat se sériovým portem, jako například s objektem SerialPort ve .NET

Dim port as new SerialPort("COM1")
port.write("KUK")
retezec=port.read() 
atd ...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

No, system("PAUSE") asi na Unixu fungovat nebude. Raději bych to psal v klasickém céčku přes open, read atd. V C++ je moc obálky kolem.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Děkuji za připomínku, pause zůstalo z testování pod win, můžu požádat o jednoduchý příklad?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Příklady, jak otevřít sériový port, najdete tady. Dělá se to funkcemi open, read, write a close.

http://www.easysw.com/~mike/serial/seria...

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback