Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Prenos dat mezi 2 PC po seriove lince

Dobrý den,

Vyřešil jsem ovládání pomocí LPT (výstupy ovládají kolejiště, tedy výhybky, návěstidla, závory). Vyřešil jsem i příjem pomocí GAMEportu (počítač indikuje obsazení a uvolnění koleje vlakem) a ted me ješte napadlo vyřešit komunikaci mezi 2 počítači po seriové lince.

Takže problém je následující.

Jsou 2 počítače propojene klasickým COM kabelem (9 pin CANNON) a potřebuji pomoci sestavit program, který bude schopen posílat libovolně dlouhé zprávy z jednoho počítače do druhého a naopak. Vlastne vznikne jednoduchy chat. K programování používám dnes netradiční jazyk Visual Basic 6.0, rozhraní WinAPI a případně i potřebné knihovny, které se dají stáhnout (RSCOM.DLL).

Zdrojový kod na inicializaci COM portu použil jsem tento:
Declare Function OPENCOM Lib "RSCOM" (ByVal OpenString$) As Integer

Declare Sub TIMEOUTS Lib "RSCOM" (ByVal b%)

Declare Sub BUFFERSIZE Lib "RSCOM" (ByVal b%)

Declare Sub CLOSECOM Lib "RSCOM" ()

Declare Sub SENDBYTE Lib "RSCOM" (ByVal Dat%)

Declare Function READBYTE Lib "RSCOM" () As Integer

Declare Sub SENDSTRING Lib "RSCOM" (ByVal Dat$)

Declare Function READSTRING Lib "RSCOM" () As String

Declare Sub CLEARBUFFER Lib "RSCOM" ()

Declare Function INBUFFER Lib "RSCOM" () As Integer

Declare Function OUTBUFFER Lib "RSCOM" () As Integer

Declare Sub DTR Lib "RSCOM" (ByVal b%)

Declare Sub RTS Lib "RSCOM" (ByVal b%)

Declare Sub TXD Lib "RSCOM" (ByVal b%)

Declare Function CTS Lib "RSCOM" () As Integer

Declare Function DSR Lib "RSCOM" () As Integer

Declare Function RI Lib "RSCOM" () As Integer

Declare Function DCD Lib "RSCOM" () As Integer

Declare Function INPUTS Lib "RSCOM" () As Integer

Declare Sub TIMEINIT Lib "RSCOM" ()

Declare Function TIMEREAD Lib "RSCOM" () As Double

Declare Sub DELAY Lib "RSCOM" (ByVal ms As Double)

Declare Sub REALTIME Lib "RSCOM" ()

Declare Sub NORMALTIME Lib "RSCOM" ()



rem otevreni portu

Private Sub Form_Load()

i = OPENCOM("COM1,1200,N,8,1")

If i = 0 Then

i = OPENCOM("COM2,1200,N,8,1")

ElseIf i = 0 Then

i = OPENCOM("COM3,1200,N,8,1")

End If

If i = 0 Then MsgBox ("Chyba při pokusu otevřít port")

End Sub

tyto kody mám z ruzných internetových zdrojů, tento funguje bez závad. Jenže nastal pro mě ohromný problém, nikde jsem nenašel příkazy které by mi prozradily že právě ony posílají data po serii. Analogický příklad (OUT COM1,DATA) a zároven jak hlídat druhy port a zjistit zda nepřišly nejaká data. Opět příklad prijate = INP (COM1).

Pokud stím někdo má zkušenost a je se ochoten se mnou o to podělit, předem děkuji za pomoc.

Závěrem dodávám že nečekám až to někdo vyřeší za mě, ale stále hledám na internetu postupy.

Příjemný den.

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny