
Steuerung einer K8056 Relaiskarte ?
ach, du hast PB version < 4 ?
da gibt's keinen typ .c beziehungsweise keinen 1 byte unsigned.
weiß nich wie man das dann macht, ob es wichtig ist das der typ 1 byte ist oder ob es wichtiger ist dass der werte bereich zumindest in 0-255 liegt (was auch mit 2 byte word, der fall wäre).
sorry
,es müßte doch hier aber leute geben, die sich mit sprachen-crossover auskennen, ..naja.
da gibt's keinen typ .c beziehungsweise keinen 1 byte unsigned.
weiß nich wie man das dann macht, ob es wichtig ist das der typ 1 byte ist oder ob es wichtiger ist dass der werte bereich zumindest in 0-255 liegt (was auch mit 2 byte word, der fall wäre).
sorry
,es müßte doch hier aber leute geben, die sich mit sprachen-crossover auskennen, ..naja.
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Aber mit Bytes müsste es unter PB 3.9x auch gehen
Kommt jedenfalls das gleiche heraus wie mit Char
Code: Alles auswählen
i=0
Dim ucMsg.b(4)
ucMsg(0) = 13
ucMsg(1) = 1
ucMsg(2) = Asc("S")
ucMsg(3) = 49 + i
ucMsg(4) = ucMsg(0) ! ucMsg(1) ! ucMsg(2) ! ucMsg(3)
For i= 0 To 4
Debug ucMsG(i)
Next i
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Die MVCOM braucht eine Adresse auf einen String.
Versuch mal dieses. Testen kann ich das nicht, da ich diese
Hardware dazu nicht habe.
Es könnte auch noch sein, das an der Stcructure noch etwas angepasst
werden müsste. Also bitte nicht gleich schimpfen
[Edit] Ich hoffe du nutzt jetzt nicht die PB-Demo-Version
Versuch mal dieses. Testen kann ich das nicht, da ich diese
Hardware dazu nicht habe.
Es könnte auch noch sein, das an der Stcructure noch etwas angepasst
werden müsste. Also bitte nicht gleich schimpfen

[Edit] Ich hoffe du nutzt jetzt nicht die PB-Demo-Version
Code: Alles auswählen
i=0
dcb.DCB
hCom=CreateFile_("COM1",#GENERIC_WRITE | #GENERIC_READ, 0, #Null, #OPEN_EXISTING, 0, #Null);
dcb\DCBlength=SizeOf(DCB)
GetCommState_(hCom,@dcb)
dcb\BaudRate = 2400
dcb\ByteSize = 8
dcb\Parity = #NOPARITY
dcb\StopBits = #ONESTOPBIT
SetCommState_(hCom,@dcb)
iBytesWritten.l
Dim ucMsg.b(4)
ucMsg(0) = 13
ucMsg(1) = 1
ucMsg(2) = Asc("S")
ucMsg(3) = 49 + i
ucMsg(4) = ucMsg(0) ! ucMsg(1) ! ucMsg(2) ! ucMsg(3)
WriteFile_(hCom, ucMsg(), 5, @iBytesWritten, #Null);
CloseHandle_(hCom)
Debug iBytesWritten
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
Das kann man eigentlich schnell miteinander vergleichen:
Vermutlich liegt es am Checksum. Bei mir kommt da ein "n" raus
und bei dir ist da eine"}" zu sehen
Hier mal beides mittels Debug ausgegeben:
Mit der MVCom müsste es auch gehen. Ich kann es wie gesagt nicht
testen:
Hauptsache es läuft schon mal
Gruß Falko
Vermutlich liegt es am Checksum. Bei mir kommt da ein "n" raus
und bei dir ist da eine"}" zu sehen
Hier mal beides mittels Debug ausgegeben:
Code: Alles auswählen
Dim ucMsg.b(4)
ucMsg(0) = 13
ucMsg(1) = 1
ucMsg(2) = Asc("S")
ucMsg(3) = 49 + i
ucMsg(4) = ucMsg(0) ! ucMsg(1) ! ucMsg(2) ! ucMsg(3)
Debug ucMsg()
Debug PeekS(ucMsg())
msg1.s=Chr(13)
address=1
msg3.s="S"
msg4.s=Chr(49)
checksum = 255 - (13 + address + Asc("C") + Asc("2")) % 256 + 1
MyBuffer1.s=msg1+Chr(address)+msg3+msg4+Chr(checksum)
Debug @MyBuffer1
Debug MyBuffer1
Mit der MVCom müsste es auch gehen. Ich kann es wie gesagt nicht
testen:
Code: Alles auswählen
...
ComWrite(Hcom,ucMsg(),5)

Gruß Falko
@Falko
Die Prüfsumme muß ja auch eine andere sein
;----------------------------------------------------------------------------------
Dim ucMsg.b(4)
ucMsg(0) = 13
ucMsg(1) = 1
ucMsg(2) = Asc("S") ;(ist auch kein "C")
ucMsg(3) = 49 + i ;(entpsricht einer 1 - wenn i=0, hier hätte für mein Bsp. der Prüfsummenberechnung i=1 gesetzt werden müssen)
ucMsg(4) = ucMsg(0) ! ucMsg(1) ! ucMsg(2) ! ucMsg(3)
Debug ucMsg()
Debug PeekS(ucMsg())
msg1.s=Chr(13)
address=1
msg3.s="S"
msg4.s=Chr(49)
checksum = 255 - (13 + address + Asc(msg3) + Asc(msg4)) % 256 + 1 ;(ist jetzt angepasst, um die richtige Prüfsumme zu berechnen)
MyBuffer1.s=msg1+Chr(address)+msg3+msg4+Chr(checksum)
Debug @MyBuffer1
Debug MyBuffer1
;----------------------------------------------------------------------------------
@Bura.Tino
[Edit]
Habe gerade gesehen, daß Du mein Bsp 1:1 in Deinen Code eingebaut hast, dann aber doch andere Daten davor verwendest. Den Fehler habe ich leider übersehen - ich war aber wenigsten nicht der Einzigste
.
[/Edit]
Sorry - das es so lange gedauert hat, bin leider nicht eher dazu gekommen.
Ich habe vorhin gerade mein altes Notebook angeworfen um es mal mit Hyperterm auf der anderen Seite zu testen. Habe aber gerade gesehen, daß da schon jemand schneller war.
MfG Mike
Die Prüfsumme muß ja auch eine andere sein

;----------------------------------------------------------------------------------
Dim ucMsg.b(4)
ucMsg(0) = 13
ucMsg(1) = 1
ucMsg(2) = Asc("S") ;(ist auch kein "C")
ucMsg(3) = 49 + i ;(entpsricht einer 1 - wenn i=0, hier hätte für mein Bsp. der Prüfsummenberechnung i=1 gesetzt werden müssen)
ucMsg(4) = ucMsg(0) ! ucMsg(1) ! ucMsg(2) ! ucMsg(3)
Debug ucMsg()
Debug PeekS(ucMsg())
msg1.s=Chr(13)
address=1
msg3.s="S"
msg4.s=Chr(49)
checksum = 255 - (13 + address + Asc(msg3) + Asc(msg4)) % 256 + 1 ;(ist jetzt angepasst, um die richtige Prüfsumme zu berechnen)
MyBuffer1.s=msg1+Chr(address)+msg3+msg4+Chr(checksum)
Debug @MyBuffer1
Debug MyBuffer1
;----------------------------------------------------------------------------------
@Bura.Tino
[Edit]
Habe gerade gesehen, daß Du mein Bsp 1:1 in Deinen Code eingebaut hast, dann aber doch andere Daten davor verwendest. Den Fehler habe ich leider übersehen - ich war aber wenigsten nicht der Einzigste

[/Edit]
Sorry - das es so lange gedauert hat, bin leider nicht eher dazu gekommen.
Ich habe vorhin gerade mein altes Notebook angeworfen um es mal mit Hyperterm auf der anderen Seite zu testen. Habe aber gerade gesehen, daß da schon jemand schneller war.
MfG Mike