Kdo my prosim naprogramuje primitivni programek ktery bude prerusovane vysilat 1 a 0 na COM port(s moznosti volby COM1-COM3 v intervalu 1 sec. DIKY MOC
Fórum › Visual Basic
COM port
to zvládnete sám, jen si stáněte knihovnu rscom.dll, tu si zaregistrujte v systému a přidejte v programu, toto vložte do modulu:
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" ()
tímto kódem otevřete port(pro výběr portu použijete např. optionButtony):
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
a např. pro linku TXD se nastaví 0 a 1 takto: TXD 0; TXD 1, obdobně pro ostatní linky?
Um?te pracovat ve VB? 1. registraci provedete tak, ?e ve startu d?te spustit, tam nap??ete "regsvr32 n?zevKnihovny",omlouv?m se nic se nep?id?v? v projektu, tak?e to sta?? jen zaregistrovat, a d?t tam ten modul
2.je?t? jsem zapom?l p?i ukon?en? programu mus?te port uzav??t a to provedete p??kazem closecom
3.pro zm?nu portu vlo??te 3kr?t optionButton a proka?d? nap??ete tento k?d, uvedu pro prvn? z nich:
?
Private Sub Option1_Click()
CLOSECOM 'je lep?? p?ed otev?en?m portu ho nap?ed zav??t, jinak se to m??e nedefinovan? chovat
i = OPENCOM("COM1,1200,N,8,1")
If i = 0 Then MsgBox ("Chyba p?i pokusu otev??t port")
End Sub
4.vlo??te objekt timer, interval nastav?te na 1000( je to v milisekund?ch) a p?id?temu tento k?d:
??
If zm?na = true then 'prom?nou zm?na deklarujete jako boolean
txd 1
zm?na = false
elseIf zm?na = false Then
txd 0
zm?na = true
end if
?Když už se tu tak bavíte o RSCOM nedělá vám někomu problémy její registrace??
myslíte že knihovna byla načtenam ale nebyl nalezen vstupní bod. Tento soubor nelze zaregistrovat. Toto mi píše i při registraci port.dll, ale jinak s tím nejsou žádné problémy, až na tu druhou knihovnu, která nefungovala tak jak by měla
Na já jen že prostě se nezaregistruje (asi) ale šlape jak hodinky. port.dll jsem zatím nezkoušel, a mimo jiné máte někdo zkušenosti s práci na GamePortu.
Pokušel jsem se o tom něco pohledat ale dá se říci že marně. Nějaká zpojení sem taky vyzkoušel ale bez reakce.
serus Sunmay, ako uz vies ja pouzivam port.dll uz strasne dlho, a este som nemal s nim problem. newem ako v rscom, ale v port.dll su funkcie aj na Game port, tam ked nameras par hodnot a zozenies popis pinov tak sa s tym da celkom slusne narabat.Ja som na to prisiel experimentami, meraniami a skusanim. ked si spravis skusobny programek napr na vypis vstupnych hodnot tak tomu rychlo porozumies.
ja som pord.dll iba skopiroval ku ostatnym knizniciam do system32 a uz to fici.
:pc:
http://jakub.lajmon.name
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Serial port — založil omicron
Ukazatel na port — založil Nykodym
BlueTooth - COM PORT — založil durmitor
Seriovy port v C — založil jatagan
Moderátoři diskuze