[Freebasic] Seriële poort communicatie

Pagina: 1
Acties:

  • JeroenH
  • Registratie: Januari 2003
  • Laatst online: 11:15
Ik ben in Freebasic een programma aan het schrijven om met een apparaat te communiceren via de seriële poort (zie hier en hier), maar ik kom er niet uit.

Het komt er in het kort op neer dat ik deze code heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
open "com1:9600,n,8,1" for random as #1

print #1, chr$(&H00);chr$(&H00);chr$(&H00);chr$(&H00);chr$(&HC1);chr$(&H00);chr$(&H00);chr$(&H00);chr$(&HC1);

for i=1 to 300
 p$=input$(1,#1)
 print asc(p$);" ";
next i    

close 1

print "Druk op een toets om af te sluiten" : sleep

end


Wat deze output tot gevolg heeft:

code:
1
2
3
4
5
6
7
8
9
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 0 0 0 0 0 0 193 0 0 0 243 0 0 0 0 0 0 0
 0 0 197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Druk op een toets om af te sluite
n


Terwijl er op de seriële poort dit gebeurt:

code:
1
2
3
4
5
6
7
8
9
Port opened by process "Soladin600.exe" (PID: 3116)

 00 00 00 00 C1 00 00 00 C1                        ....Á...Á       

Answer: 7-10-2006 9:18:40.46264 (+0.0625 seconds)

 00 00 11 00 C1 F3 00 00 C5                        ....Áó..Å       

Port closed


Dus: mijn programma stuurt een string naar het apparaat, het apparaat stuurt wat terug, dit komt ook bij de computer terug maar mijn programma 'mengt' dit met een groot aantal nullen. Omdat er in de data zelf ook nullen zitten kan ik niet de data eruit filteren die ik nodig heb, ook omdat het aantal nullen varieert per run van het programma. Dat zal wel een timing-issue zijn o.i.d.

Mijn vraag: heeft iemand met Basic-kennis ervaring in het werken met de seriële poort? Ik denk dat ik een commando of functie moet hebben wat wacht tot er een byte bij de seriële poort wordt afgeleverd, en pas dan de byte doorgeeft aan het programma.

Hopelijk kan iemand helpen want ik kom er echt niet uit.

Xtool D1 10w laser cutter - IoT moet nooit op internet - 4x HomeWizard plug-in batterij, totaal 10,8 kWh / 3200 watt / 3200 watt, aansturing met Home Assistant - Renault Twizy ± 10000 km per jaar


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 09:03
Misschien moet je em binary openen?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.