Avatar billede mr_green Nybegynder
18. september 2002 - 11:20 Der er 14 kommentarer

Læse fra COM port uden ekstra komponent?

Jeg er ved at lave et program hvor jeg skal bruge en håndscanner.
Programmet er et der skal køre i lang tid så jeg vil helst undgå at skulle installere nogle nye komponenter er det muligt at læse fra COM porten i Delphi 6 uden at installere nye komponenter?
Avatar billede stoney Nybegynder
18. september 2002 - 11:36 #1
Du kan sikkert lure et par tricks her.
Det er godt nok en component, men sourcen er med og det hele er gratis.
Så det er bare at gå igang med at læse sourcen, hvis du ikke vil
bruge/installere yderligere componenter.

Stoney
Avatar billede mr_green Nybegynder
18. september 2002 - 11:38 #2
Hvor? ;-)
Avatar billede stoney Nybegynder
18. september 2002 - 11:41 #3
Avatar billede mr_green Nybegynder
18. september 2002 - 15:07 #4
Jeg kan ikke få de test programmer der er med til at virke.
Jeg kan godt få text smidt ind i en hyper terminal men ikke i test programmerne??
Avatar billede loke-liscom Nybegynder
19. september 2002 - 12:02 #5
Der findes API kald til det. Prøv at kigge på noget om filhåndtering med API. det er noget i stil med
file := OpenFile('//com2'bla bla bla);
Der står en masse om det i SDK'en.
Der er også en anden mulighed, det er at bruge asmbler og læse direkte fra porten. Hvis du ikke kan finde ud af det så kan jeg godt kigge jeg lidt på det for dig. Jeg har tidligere rodet meget med det.
Avatar billede mr_green Nybegynder
19. september 2002 - 12:04 #6
Jeg sidder lige nu og kigger på CreateFile(); men jeg synes ikke rigtigt at det vil som jeg vil, der er vel ikke nogen af jer der har et eksempel liggende jeg kan prøve at kigge på?
Avatar billede doc404 Novice
19. september 2002 - 12:07 #7
Alt hvad du behøver er her:

http://www.swissdelphicenter.ch/en/showcode.php?id=841

/doc404
Avatar billede loke-liscom Nybegynder
19. september 2002 - 12:10 #8
Jeg prøver at finde lidt om 3F8 og 2F8, men så vidt jeg husker er der lidt problemer med det da windows helst vil ha' at man bruger API. Det er noget med at man skal initialisere porten på en bestemt måde og så holder windows fast i porten indtil applikationen lukkes, eller noget.
Avatar billede loke-liscom Nybegynder
19. september 2002 - 12:12 #9
Det har du ret i doc404 men der er nok 100 andre ting man ikke kan med api som man kan hvis man læser direkte fra porten. Men det er dog den lettest at bruge API
Avatar billede mr_green Nybegynder
19. september 2002 - 14:17 #10
doc404> Jeg synes ikke rigtigt at jeg kan få det til at virke hvis jeg bruger det der står på:
http://www.swissdelphicenter.ch/en/showcode.php?id=841

Der sker intet når jeg bruger min håndscanner?
Avatar billede doc404 Novice
19. september 2002 - 14:21 #11
Har du sat baudrate, paritet og stopbits rigtigt op?
Avatar billede mr_green Nybegynder
19. september 2002 - 14:27 #12
Ja den står fuldstændig som min com port gør. Men jeg er osse lidt i tvivl om hvordan ReadText functionen den virker, om den kører hele tiden eller hvad den gør?
Avatar billede doc404 Novice
19. september 2002 - 14:36 #13
Den ReadText er bare et eksemple - der ikke kan bruges ;-) Den forsøger at læse 80 karaktere. Prøv at ændre den til kun at læse 1 ad gangden

procedure ReadText: string;
var
  d: array[1..80] of Char;
  s: string;
  BytesRead, i: Integer;
begin
  Result := ''; 
  if not ReadFile(ComFile, d, 1, BytesRead, nil) then
  begin
    { Raise an exception }
  end;
  s := '';
  for i := 1 to BytesRead do s := s + d[I];
  Result := s;
end;

Så kan du sikkert se ideen med det og så lavet en GetCharFromScanner funktion
Avatar billede hermandsen Juniormester
11. november 2002 - 09:44 #14
Lukketid? :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester