Toon posts:

Welke programmeertaal voor aansturing I/O van pc

Pagina: 1
Acties:
  • 722 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil eens wat gaan spelen met de seriele-, parallele- en misschien later ook USB-poorten van de pc. Nu ben ik geen hele echte programmeur en heb alleen een beetje ervaring met C, C++ en Visual Basic op dit gebied. 2 jaar geleden heb ik met Visual Basic nogal eens wat gedaan en merkte dat het behoorlijk makkelijk was aan te leren en een grafische interface snel en gemakkelijk was gemaakt. Echter lijkt het na wat zoeken op Google dat C/C++ voor I/O toch wat meer geschikt zijn?

Welke programmeertaal raden jullie aan voor dit soort doeleinden (eventueel wil ik ook wel iets nieuws leren als er nog een beter alternatief is). Wel wil ik dat het mogelijk is een GUI op te zetten en hier wat mee te kunnen doen (bijv tabel afdrukken of grafiek tekenen met waarden op input van poort).

  • tombo_inc
  • Registratie: December 2004
  • Laatst online: 10-03 13:21

tombo_inc

uhuh

c/c++ is zo groot dat je het voor (bijna) alles kan gebruiken. het is maar net wat je precies wil en hoe geavanceerd. van visual basic heb ik geen verstand. maar een alternatief zou misschien delphi kunnen zijn. daar kun je ook erg makkelijk een GUI in maken. ik denk iig dat c/c++ zeker geschikt zal zijn.

[ Voor 9% gewijzigd door tombo_inc op 14-04-2005 21:33 ]

Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

De taal waarmee je het doet maakt niet zoveel uit. Het is waar dat C en C++ veel gebruikt en toegepast worden, maar dat zal er vooral mee te maken hebben dat dat een praktischere taal is om mee te werken dan bijvoorbeeld VB.

Ik heb zelf wat ervaring met I/O via de seriële poort op een wat hoger niveau. Dat wil zeggen: ik heb met het VaComm component, dat te installeren is voor Delphi en C++ Builder, een applicatie gemaakt die communiceert via de seriële poort. Dit object maakt het erg makkelijk, maar het kan zijn dat jij liever op een lager niveau programmeert. Dus: wat wil je eigenlijk precies? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
USB eist denk ik een Windows Driver. Dat betekent de Windows DDK downloaden, en C gebruiken. C++ mag ook, als je echt weet wat je aan het doen bent. Maar zoiets simpels als een virtual call op het verkeerde moment (als de aangeroepen code geswapt is) kan je systeem onderuit halen. (Natuurlijk ga je ook nat als je in C via een functionpointer zoiets uithaalt)

Serieel en Parallel is veel makkelijker. Vooral serieel is triviaal, voor input en output. Dat kan wel in VB, maar evengoed is het niet de meest voor de hand liggende taal. De standaard driver geeft je volledige toegang, maar wel op Win32 API nivo. Dat is minder makkelijk in VB. VB.Net weet ik niet. In C++ is het in elk geval vrij simpel.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

MSalters schreef op vrijdag 15 april 2005 @ 00:03:
USB eist denk ik een Windows Driver.
Weet je dat zeker? Op de Mac en onder Linux heb je toch ook USB? Heb je dan ook een Windows driver nodig?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op vrijdag 15 april 2005 @ 00:10:
Weet je dat zeker? Op de Mac en onder Linux heb je toch ook USB? Heb je dan ook een Windows driver nodig?
Tuurlijk kan dat ook in Linux/Mac/whatever-omgevingen. :) Ik denk dat MSalters aanneemt dat TS met Windows werkt, aangezien hij over Visual Basic praat. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 19-03 00:48

ZaZ

Tweakers abonnee

heb er zelf nooit iets mee gedaan maar je kan in VB al wel een kijkje nemen.
de site van Intel heeft wat source staan.
werkt hier meteen zonder dll's downloaden enzo op een verse Windows

klik

maar toch denk ik ook dat het niet de beste taal is voor USB gedoe

Lekker op de bank


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

MSalters schreef op vrijdag 15 april 2005 @ 00:03:
USB eist denk ik een Windows Driver. Dat betekent de Windows DDK downloaden, en C gebruiken. C++ mag ook, als je echt weet wat je aan het doen bent.
Vaak zie je dat er voor hardware aan de USB een virtuele seriele poort wordt aangemaakt zodat het aansturen van zo'n apparaat een eitje is. Indien dat niet het geval is dan wordt er afhankelijk van het apparaat vaak een driver meegeleverd en een bijbehorende API om de boel aan te sturen.
En als zelfs dat er niet is dan zijn er libraries zoals usblib om de USB "direct" aan te sturen. Je bent dan wel je eigen driver aan het schrijven in userland en het kost wat moeite, maar een echte Windows Driver is dan nog steeds niet nodig.

Welke taal is dan verder niet zo relevant, VB, C, C++, Delphi, whatever, dat kan allemaal prima.

Tip: er zijn al redelijk wat topic voorbij gekomen in Programming & Webscripting maar ook in Casemodding & Elektronica voor I/O aansturing. Waarschijnlijk zit daar best iets bruikbaars tussen :)

[ Voor 55% gewijzigd door Creepy op 15-04-2005 09:31 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Bedankt voor de reacties. Ik was niet van plan het direct van een hoger niveau te pakken; het is gewoon de bedoeling dat ik de inputs kan uitlezen en wat op de output kan zetten. Ik zit nog te twijfelen tussen C++ en Visual Basic, maar ga denk ik eerst even kijken of het goed te doen is een GUI op te zetten in C++. USB wordt begrijp ik wat lastiger, maar dat komt later dan nog wel een keer :)

Ik heb nog even een klein vraagje. Toen ik een paar jaar geleden wat met Visual Basic had gemaakt om de seriele poort aan te sturen heb ik wel eens gelezen dat VB eigenlijk te traag is om de maximum snelheid uit de poort te halen (ik weet niet of dit voor elke poort zo was, misschien alleen de biderectionele parallele poort); is dit inderdaad zo?

Verwijderd

Verwijderd schreef op vrijdag 15 april 2005 @ 11:04:
Ik zit nog te twijfelen tussen C++ en Visual Basic, maar ga denk ik eerst even kijken of het goed te doen is een GUI op te zetten in C++.
Je zou natuurlijk ook de GUI in VB kunnen doen, en de I/O routines in een C(++) DLL.
Of je gebruikt gewoon Delphi, die is goed in beide... :)

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

FMA is bijvoorbeeld een open source frreeware programmatje geschreven in Delphi die communiceert met telefoons via seriele poorten, usb (via een virtuele seriele poort) en bluetooth.

/edit
Owja, en ook via infrarood

[ Voor 8% gewijzigd door LordLarry op 15-04-2005 12:54 ]

We adore chaos because we like to restore order - M.C. Escher


Verwijderd

Een andere goede Delphi library: TurboPower Async Pro.
Tegenwoordig open source, nu TurboPower niet meer bestaat, en zo ongeveer alle ontwikkelaars naar Falafel zijn gegaan.

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 15 april 2005 @ 11:42:
[...]

Je zou natuurlijk ook de GUI in VB kunnen doen, en de I/O routines in een C(++) DLL.
Of je gebruikt gewoon Delphi, die is goed in beide... :)
Daar had ik nog niet eens aan gedacht, maar heeft VB beperkingen t.o.v. C++ wat betreft het maken van een GUI (of andersom)?

  • sebastius
  • Registratie: September 2000
  • Laatst online: 08:20

sebastius

Laten we lekker link gaan doen

Ik doe al mij IO werk (serieel weliswaar) gewoon met Visual Basic 6 met de MSCOMM OCX. Lekker simpel en altijd betrouwbaar.

Verwijderd

sebastius, dat is dus precies wat ik zei: de GUI in VB, en de I/O communicatie via een C(++) DLL. :)

  • Farmerpeter
  • Registratie: Maart 2005
  • Laatst online: 02-12-2024

Farmerpeter

`'t kan verkeren

Ik ben zelf bezig met een USB IO solution project met een controller van Cypress, ik heb hem afgelopen week in elkaar gesoldeer met 0 soldeerervaring, en hij wordt standaard een drivertje toebedeeld door windows XP, ben nu bezig met het programmeren in Delphi, waar ik een keer een euro-calculatortje voor gemaakt heb, dus niet zo bar veel maar wel een beetje ervaring, gelukkig is mijn microcontroller zeer goed gedocumenteerd, ook met delphi voorbeelden en is er via www.elomax.nl of via de mail heel veel support te krijgen :) . Ik ben zelf niet voor de seriele of parralele poort gegaan, omdat je dan volgens mij iets uit moest schakelen en het dus niet gelijk aan een openbare (beveiligde ) computer is te hangen. Maar als je daar geen moeite mee hebt, kun je net zo goed wle een parralele poort gebruiken, maar USB staat ietsie wijzer :9

Als je wil kan je dus ook zonder ervaring aardig ver komen, maar de software moet je toch eigenlijk wel vaker gedaan hebben, want daar loop ik nu zelfs met de Delphi voorbeelden al een paar dagen mee te ploeteren, is natuurlijk ook wel iets moeilijker als een euro-calculator.

AM2 X2 3600 @ 3.0Ghz Asrock AliveNF4G-DVI OCZ pc5300


Verwijderd

Topicstarter
Dus VB heeft geen beperkingen wat betreft het maken van een GUI?

Verwijderd

Jawel, VB (t/m versie 6) heeft daar wel beperkingen in. 't Werkt eerder object based dan object oriented. Niks mis mee wanneer je voldoende hebt aan de geboden objects (edit controls, etc.), maar wanneer je zelf een afgeleide van een edit control wilt maken die naast het standaard behaviour ook nog jouw extra dingen doet, dan is VB niet handig.
Vandaar dat in zulke gevallen vaak wordt uitgeweken naar een OCX die in C++ is geschreven.

Maar ja, in VB bouw je veel sneller een GUI dan in C++, al wordt dat verschil in Visual Studio .NET al een stuk kleiner. Maar als je toch al naar .NET gaat, zou ik kiezen voor C# of voor Delphi 2005... :)
Pagina: 1