Article View: be.comp.programming
Article #6053Re: kleine vertaling qbasic => C++
From: Luc Kumps
Date: Mon, 13 Jan 2003 11:21
Date: Mon, 13 Jan 2003 11:21
49 lines
2723 bytes
2723 bytes
"Harvie" <harvie@freegates.be.nospam> wrote in message
news:3E21B655.2060908@freegates.be.nospam...
> Hi iedereen. Ik heb een vertaal vraag. Wie kan er de volgende QBasic
> code vertalen naar C++ ??
>
> open "com1:2400,N,8,2,CS10000,DS" as #1
> print #1,chr$(26)+chr$(23);
> close #1
>
> Ik ben namelijk begonnen met een programma te schrijven dat zal draaien
> onder linux, voor de besturing van een marklin digitaal baan. Onder
> linux bestaat er blijkbaar zeer weinig software voor dit doel.
Als je nog nooit asynchrone I/O soft geschreven hebt op Unix, dan zal dit je
een beetje tijd vergen. Je moet de "termio" man pages maar eens lezen.
Ik heb geen tijd om een volledig programma te maken, ik kan je wel zeggen
welke calls je moet gebruiken om het bovenstaande te doen:
1. Openen poort
int fd;
fd = open("/dev/xxx", O_RDWR);
De xxx komt overeen met de naam van de asynchrone poort op je systeem
2. Configureren poort
struct termio arg;
ioctl(fd, TCGETA, &arg);
Hiermee haal je de huidige settings (baud rate, parity, ...) op.
Dan wijzig je enkele zaken, bv:
arg.c_cflag = B2400 | CS8 | CREAD;
3. Schrijf gegevens met "write":
unsigned char buf[] = {0x26,0x23};
write(fd,buf,sizeof(buf));
Ik hoop dat je er hiermee uitraakt. Als je wat googlet op
"termio,ioctl,TCGETA,TCSETA" zal je wel wat voorbeelden vinden...
Misschien kun je het ook zonder code te schrijven, door:
1. Met "stty" de poort goed te configureren
2. Met "cat" een bestand, met daarin de twee te sturen bytes, naar de poort
te sturen
Luc K
Technical Details
Message-ID:
<1jxU9.9337$ym5.1172@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news.gsl.net!gip.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<3E21B655.2060908@freegates.be.nospam>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,5b82ada288f80077 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-01-13 03:24:08 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-03!sn-xit-01!sn-xit-09!supernews.com!newsfeed.gamma.ru!Gamma.RU!newsfeed.icl.net!newsfeed.fjserv.net!news-lond.gip.net!news.gsl.net!gip.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail From: "Luc Kumps" <NOkumpsSPAM@pandora.be> Newsgroups: be.comp.programming References: <3E21B655.2060908@freegates.be.nospam> Subject: Re: kleine vertaling qbasic => C++ Lines: 51 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: <1jxU9.9337$ym5.1172@afrodite.telenet-ops.be> Date: Mon, 13 Jan 2003 11:21:33 GMT NNTP-Posting-Host: 213.119.33.126 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1042456893 213.119.33.126 (Mon, 13 Jan 2003 12:21:33 MET) NNTP-Posting-Date: Mon, 13 Jan 2003 12:21:33 MET Organization: Telenet Internet