serielle Schnittstelle direkt Ansteuern
Übersicht

![]() |
PowerProgrammerBetreff: serielle Schnittstelle direkt Ansteuern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
also ich hoffe ich hab das richtig geposten (bin neu hier)! Jedenfalls habe ich einen VB-Code nach BlitzBasic importiert: Ein Proggi zum direkten Ansteuern der Pinne der seriellen Schnittstelle ohne eine externe DLL, nur mit dem Windows-API-Zeug! Die Ausgänge kann man schon Ansteuern, aber geht das auch mit den Eingängen? Das bekomme ich net hin! Habt ihr Ideen? BlitzBasic: [AUSKLAPPEN] Const INC_MS_CTS_ON = $10 Achso, die LIBs: Code: [AUSKLAPPEN] .lib "kernel32.dll" ;<-- Jetzt hab ichs
api_CreateFile%(FileName$, DesiredAccess%, ShareMode%, pSecurrityAttribute%, CreationDistribution%, FlagsAndAttributes%, TemplateFile%) : "CreateFileA" api_CloseHandle% (hObject%) : "CloseHandle" api_EscapeCommFunction% (nCid%, nFunc%) : "EscapeCommFunction" |
||
- Zuletzt bearbeitet von PowerProgrammer am So, Apr 16, 2006 12:34, insgesamt einmal bearbeitet
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Achso, die LIBs:
Code: api_CreateFile%(FileName$, DesiredAccess%, ShareMode%, pSecurrityAttribute%, CreationDistribution%, FlagsAndAttributes%, TemplateFile%) : "CreateFileA" api_CloseHandle% (hObject%) : "CloseHandle" api_EscapeCommFunction% (nCid%, nFunc%) : "EscapeCommFunction" also doch mit libs.... ![]() |
||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
BlitzBasic303Betreff: RE: |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Er hat ja auch gesagt, das man keine DLL braucht. Er hat nicht gesagt ohne UserLib... Außerdem liegt die LIB ja nicht im Programmverzeichnis, sondern in dem Userlib ordner. Also braucht man keine Dateien im Programmverzeichnis haben,um die serielle Schnittstelle anzusteuern.... | ||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
ist für mich zwar nicht gerade interessent, aber:
Zitat: Achso, die LIBs: Code: api_CreateFile%(FileName$, DesiredAccess%, ShareMode%, pSecurrityAttribute%, CreationDistribution%, FlagsAndAttributes%, TemplateFile%) : "CreateFileA" api_CloseHandle% (hObject%) : "CloseHandle" api_EscapeCommFunction% (nCid%, nFunc%) : "EscapeCommFunction" Tja, stellt sich nur die frage zu welcher lib es gehört? user32? gdi? kernel? etc... |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
BlitzChecker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist für die kernel32.decls ![]() tja, ich kann halt gedanke lesen ne, kleiner scherz, PowerProgrammer ist mein Freund und der sitzt grad neben mir ![]() |
||
www.xairro.com |
- Zuletzt bearbeitet von BlitzChecker am So, Apr 30, 2006 18:45, insgesamt einmal bearbeitet
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, tut mir Leid, nehmts mir nicht übel! Ich meine die "kernel32.dll". Aber schließlich sind all die Hardwarefunktionen in der Kernel (glaub ich), also dürfte das klar sein ![]() |
||
![]() |
PowerProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte ja gefragt, wie ich das mit den Eingangsfunktionen lösen kann. Vielleich kann mir jemand helfen, wenn ihr den ursprünglichen VB-Code seht.
Die Funktion, die mich zum Verzweifeln bringen, findet ihr ganz unten. Im folgenden Code fehlen die Konstanten, aber die stehen ja im BB-Code ganz oben. Code: [AUSKLAPPEN] ' Die VB-Libs
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal NOlpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Declare Function EscapeCommFunction Lib "kernel32" (ByVal nCid As Long, ByVal nFunc As Long) As Long Declare Function GetCommModemStatus Lib "kernel32" (ByVal hFile As Long, lpModemStat As Long) As Long Dim nCid As Long '/////////////////////////////////////////////////// '///Diese Funktionen waren kein Problem///////////// '/////////////////////////////////////////////////// Function OPENCOM(ByVal lpDef As String) As Integer nCid = CreateFile(Left(lpDef, 4), INC_GENERIC_READ Or INC_GENERIC_WRITE, 0, 0, INC_OPEN_EXISTING, 0, 0) If nCid > 0 Then OPENCOM = nCid Else OPENCOM = 0 End Function Sub CLOSECOM() x = CloseHandle(nCid) End Sub Sub DTR(Status As Integer) If Status = 1 Then EscapeCommFunction nCid, INC_SETDTR Else: EscapeCommFunction nCid, INC_CLRDTR End Sub Sub RTS(Status As Integer) If Status = 1 Then EscapeCommFunction nCid, INC_SETRTS Else: EscapeCommFunction nCid, INC_CLRRTS End Sub Sub TXD(Status As Integer) If Status = 1 Then EscapeCommFunction nCid, INC_SETBREAK Else: EscapeCommFunction nCid, INC_CLRBREAK End Sub '/////////////////////////////////////////////////// '///Hier beginnen die Eingangsfunktionen//////////// '/////////////////////////////////////////////////// Function CTS() As Integer Dim mask As Long GetCommModemStatus nCid, mask If (mask And INC_MS_CTS_ON) = INC_MS_CTS_ON Then CTS = 1 Else CTS = 0 End Function Function DSR() As Integer Dim mask As Long GetCommModemStatus nCid, mask If (mask And INC_MS_DSR_ON) = INC_MS_DSR_ON Then DSR = 1 Else DSR = 0 End Function Function RI() As Integer Dim mask As Long GetCommModemStatus nCid, mask If (mask And INC_MS_RING_ON) = INC_MS_RING_ON Then RI = 1 Else RI = 0 End Function Function DCD() As Integer Dim mask As Long GetCommModemStatus nCid, mask If (mask And INC_MS_RLSD_ON) = INC_MS_RLSD_ON Then DCD = 1 Else DCD = 0 End Function Function Inputs() As Integer Dim mask As Long GetCommModemStatus nCid, mask Inputs = (Int(mask / 16)) And 15 End Function @Moderatoren: Ich weiß, dass ihr den forenfremden Code nicht gerne hier seht, aber sorry, das musste sein, sonst hilft mir wohl kaum einer! So den Thread bitte nicht trashen, danke! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group