| |
|
|
- Seite 1 - |
|
Web Scanner | Nachtrag: Web Scanner, Beitrag=56582, Zeitpunkt=28.03.2010
Du kannst Dir dieses Thermometer bei Ebay bestellen: USB xp linux thermometer,RS232 protocol,TEMPer232 Ebay Artikelnummer:220564891464 Herstellerseite: [...] Das Ding kostet 18US$ + 6$ Fracht. Das Temper232 kommt aus China, dauert paar Tage. Grüße Web
Web Scanner, Beitrag=56571, Zeitpunkt=28.03.2010
Anbei der Quelltext. Kann man sicher noch viel besser machen, aber es funktioniert erstemal: KompilierenMarkierenSeparierenTemperaturmessung Temper232 für PROFAN
über RS232 COMPORT 3
(C) Webbisoft 3/2010
Declare a$, f%, ende%,e%
Declare x$, y$, z%, bz&, xtemp!,xdtemp!, ll&, hh&, testtemp%
Proc GetComInput
Parameters id%
x$ = @ReadCom$(id%,10)
y$ = @ComError(id%)
bz& = @addr(x$)
print "temp: ",bz&
WhileNot x$ = ""
testtemp% = 0
x$=@ReadCom$(id%, 10)
@ComError(id%)
bz& = ord(mid$(x$,1,1))
print "temp1: ",(bz&); " ";
if bz& = 36
testtemp% = 1
else
testtemp% = 0
endif
bz& = ord(mid$(x$,2,1))
print (bz&); " ";
if bz& = 254
testtemp% = 1
else
testtemp% = 0
endif
bz& = ord(mid$(x$,3,1))
print (bz&); " ";
if bz& = 2
testtemp% = 1
else
testtemp% = 0
endif
bz& = ord(mid$(x$,4,1))
print (bz&); " ";
bz& = ord(mid$(x$,5,1))
print (bz&); " ";
bz& = ord(mid$(x$,6,1))
print (bz&); " "
iF TESTTEMP% =1
hh& = ord(mid$(x$,4,1))
ll& = ord(mid$(x$,5,1))
Print "ll& =", (ll&)
Print "hh& =",(hh&)
Xtemp! =256*hh&+ll&
Print "xtemp!=", xtemp!
If Xtemp! > 16384
XDtemp! = -(16384-(Xtemp!)/4)*(0.03125) Korrekturwert 4000h ab 100°C
Else
XDtemp! = (Xtemp!/4)*(0.03125)
EndIf
XDtemp!= XDtemp!-3 Korrekturwert
@Set("Decimals",2)
print "Temperatur USB232= ",xdtemp!,"°C"
endif
sleep 800
EndWhile
print
EndProc
Window 0, 0 - 400, 400
f% = @OpenCom("COM3", 1024, 1024)
@SetCom("COM3:4800,N,8,1")
@WriteCom(f%, chr$($24)+ chr$($10)+chr$($05)+chr$($01)+chr$($01)+chr$($00)+chr$($32)+chr$($01)+chr$($55))
Thermometer initialisieren
y$ = @ComError(f%)
GetComInput f% Antwort abwarten und anzeigen
ende% = 0
WhileNot ende%
a$ = @Inkey$() Tastatur abfragen
If a$ = "§" Ende mit SHIFT-3
ende%=1
Else
GetComInput f% empfangene Zeichen lesen
Endif
EndWhile
@CloseCom(f%)
End
Hallo Programmierfreunde,
nach längerer Zeit habe ich wieder ein kleines Softwareprojekt. Es geht um eine Temperatursteuerung. Dazu muß ich einen USB Temperaturstick auswerten. Sowas hier: Ebay Artikelnummer: 380167386533
Nun meine Frage, hat so etwas schon jemand gemacht? Gibt es da spezielle Treiber, dlls, oder sonstige Hilfen? Ich muß dazu sagen, das der Stick noch nicht bei mir weilt und daher ist es noch etwas dürftig mit der Datenlage
Grüße
Web |
|
|
| |
|
|
| |
|
- Seite 6 - |
|
|
| Nicht entsorgen, irgendwas übersehnwa - vlt. können wir noch einmal von vorn beginnen. -.- |
|
|
| |
|
|
|
Detlef Tussing | Wenn du den USB-Stick über eine mitgelieferte DLL Datei anspricht könnte es eher gehen
z. B.
def cleardigi(1) !"c:RelaisK8055.dll","ClearDigitalChannel" def opendevice(1) !"c:RelaisK8055.dll","OpenDevice" def CloseDevice(0) !"c:RelaisK8055.dll","CloseDevice"
das sind Befehle die eine USB Relaiskarte anspricht
dllh&=usedll("c:RelaisK8055.dll")
karte2%=opendevice(2)Initialisierung der Karte ifnot karte2%=2 messagebox "Karte 2 defekt oder fehlt","",0 closedevice(1) freedll dllh& end
so könnte es bei dir auch gehen
welche DLL du nehmen musst kann ich dir nicht sagen, du kannst ja mal alle DLL deines Stick ansehen (mit dem EDITOR) dort wirst du dann die entsprechenden Befehle finden(in der Regel am Ende der Datei) oder schick mal alle DLL´s das ich sie mir ansehen kann, es währe ein Versuch wert |
|
|
| |
|
|
|
Web Scanner | Hi Zusammmen,
hier die einzige DLL die es dazu gibt: [...]
Danke
Grüße
Web |
|
|
| |
|
|
|
H.Brill | Hallo, Hab da auch mal eine Frage. Ich hab da auch so einen USB To Seriell Kabel von VIVANCO, das ich mal testen wollte. Da ich noch einen PC mit echter COM habe, hatte ich mal den Profilic-Treiber installiert. Dieser zeigt mir auch im System COM6: an. Also fix die echte mit dem USB->Seriell Kabel verbunden. Wenn ich nun mit der echten COM (sie Code) was sende, kommt auch alles richtig an. Vertausche ich nun (f% + f1%) bei WriteCom und ReadCom$(), kommt auch was an, aber scheinbar nur ein leerer String. Mache ich da was falsch oder hat wer auch schon solche Erfahrung mit dem VIVANCO-Teil gemacht ? Sieht so aus, als hätte der Profilic-Treiber beim Senden ein Problem. KompilierenMarkierenSeparieren $H windows.ph
Declare f%, f1%, flag%, flag1%, fehler%, sende$, empfang$
Declare GridBox%
sende$ = "D"
flag% = 0
flag1% = 0
Proc OpenComPort1
f% = @OpenCom("COM1", 1024, 1024)
SetCom("COM1: 1200, N, 8, 1")
SetComExt(f%,-1,-1,-1,$82,-1,-1)
If f% > 0
flag% = 1
Else
flag% = 0
Endif
EndProc
Proc OpenComPort6
f1% = @OpenCom("COM6", 1024, 1024)
SetCom("COM6: 1200, N, 8, 1")
SetComExt(f1%,-1,-1,-1,$82,-1,-1)
If f1% > 0
flag1% = 1
Else
flag1% = 0
Endif
EndProc
Proc Dialog
Declare hD%, hB%, opencom%, Edit1%, Label1%, OK%, send%, Name$
hD% = @Create("Dialog",%DeskTop,"Dialogfenster",100,100,600,400)
hB% = @Create("Button",hD%,"&ENDE",10,10,60,25)
opencom% = @Create("Button", hD%, "&Open Com", 100, 10, 100, 25)
send% = @Create("Button", hD%, "Send", 220, 10, 100, 25)
Label1% = @Create("Text", hD%, "Name : ", 10 ,50, 60, 20)
Edit1% = @Create("Edit", hD%, "Text", 70, 50, 240, 20)
GridBox% = @Create("Gridbox", hD%, "Spalte 1;0; 120;Spalte 2; 2; 100; Spalte 3; 1; 120; Spalte 4; 3; 120; Spalte 5; 3; 120", 2, 10, 80, 580, 320)
Clear OK% OK% auf 0 setzen
WhileNot Ok% solange OK% gleich 0 ist
WaitInput
If @Clicked(hB%)
Ok% = 1
ElseIf %Key = 2
OK% = 1
ElseIf @Clicked(opencom%)
OpenComport1
If flag% = 1
@MessageBox("Schnittstelle geöffnet !", "Info", 0)
Endif
OpenComport6
If flag1% = 1
@MessageBox("Schnittstelle geöffnet !", "Info", 0)
Endif
ElseIf @Clicked(send%)
If flag% = 1
sende$ = GetText$(Edit1%)
WriteCom(f%, sende$)
fehler% = @ComError(f%)
If fehler% <> 0
SetText Edit1%, Str$(fehler%)
Endif
Sleep 100
empfang$ = @ReadCom$(f1%, 14)
fehler% = @ComError(f1%)
If fehler% <> 0
SetText Edit1%, Str$(fehler%)
Else
SetText Edit1%, empfang$
@AddString(Gridbox%, empfang$ + "|" + empfang$ + "|" + empfang$ + "|" + empfang$ + "|" + empfang$)
EndIf
Endif
EndIf
EndWhile
@DestroyWindow(hD%)
EndProc
Dialog
If flag% = 1
CloseCom(f%)
EndIf
If flag1% = 1
CloseCom(f1%)
EndIf
End
|
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 22.03.2010 ▲ |
|
|
|
|
Detlef Tussing | Hallo WEB
in der DLL konnte ich nichts finden aber vileicht hilft dir das gefunden bei Google "usb rd" ================ Dim aComPort$() = TEMPer.Communication.TEMPerInterface.FindDevices() ================ Provided that Alex’s DLL has been linked in, this finds all the USB TEMPer devices and puts their names into an array
In my case, these are: aComport$(0) = “COM17″ aComport$(1) = “COM18″
These can then be read individually ================ For i = 0 To n Dim ti As New TEMPer.Communication.TEMPerInterface(aComPort$(i)) TempC# = ti.ReadTEMP MsgBox(��?i=��? + Str(i) + ��? aComport$=��? + aComPort$(i) + ��? Temp = ��? + Str(TempC)) Next ================
This is simply a vb “for loop” Breaking it down, for each COM port, “create” an object called “ti” (or “Fred” or “Rumplestiltskin”) if you prefer using: ================ Dim ti As New TEMPer.Communication.TEMPerInterface(“COM17″) ================
I’m not sure exactly what this does (I’d like to), but provided that Alex’s DLL has been linked, it just works.
The next step is to read the device. This must of course be done for each device. ================ X = ti.ReadTEMP ================ |
|
|
| |
|
|
|
Web Scanner | Hi Detlef,
danke für das Listing, aber ich bin "nur" auf Profan geeicht, ich komme ehrlich gesagt damit nicht wirklich weiter
Das in Profan zu übersetzen, bekomme ich nicht hin, schon wegen der seltsamen Sonderzeichen, Sorry...
Grüße
Web |
|
|
| |
|
|
|
| Kannst auch nicht mit klarkommen, die Definition TEMPerInterface fehlt. :/ |
|
|
| |
|
|
|
Web Scanner | Hmmm, dann gehts so also auch nicht...
Grüße
Webbi |
|
|
| |
|
|
|
| Also nochmal, die aktive Comport-Nummer des Gerätes ist parat? |
|
|
| |
|
|
|
Web Scanner | Jo, ich habe jetzt mal auf den virtuellen Comport No.2 umgestellt. Jetzt bekomme ich bei @Comerror immerhin schon eine "284" zurück. Vorher wars ne -1 damit konnte ich garnix anfangen.
heisst wohl:
$0200 - Bei der Kommunikation mit der parallelen Schnittstelle trat ein Timeout auf. $0080 - Receive-line-signal-detect-Unterbrechung. $0004 - Die Hardware stellte einen Parity-Fehler fest
Tja und nun?
Grüße
Web |
|
|
| |
|
|
|
| Ich hab einfach keine Idee, son Mist...
Mit Gerät würde ich wohl mit obigen Apis testen, vlt. kommt man damit weiter. |
|
|
| |
|
|
|
Web Scanner | Ich schick Dir das Thermometer-Dingens gern mal rüber, wenn Du magst
Grüße
Web |
|
|
| |
|
|