Deutsch
Quelltexte/ Codesnippets

Auslesen Temperaturfühler Usb

 
- 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:
KompilierenMarkierenSeparieren
Temperaturmessung 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
 
Xprofan X3.1
Win7 auf AMDX6
12.10.2009  
 



 
- Seite 3 -



Web
Scanner
DLL mit Doku ist nicht dabei..leider.
So siehts installiert aus:


114 kB
Hochgeladen:20.10.2009
Ladeanzahl124
Herunterladen
 
Xprofan X3.1
Win7 auf AMDX6
20.10.2009  
 



Na die 169KBer sieht doch schonmal gut aus, schau doch mal rein - unten stehen oft gleich Exportnamen und schalt mal in Deinen Explorereinstellungen [X] bekannte Extensionen ausblenden ab - sieht man ja sonst nüscht. ^^
 
20.10.2009  
 




Web
Scanner
im 169er steht unten das drin:

E:xiaosongRDingHidHidFTDllDebugHidFTDll.pdb

Hilft das

Jetzt hab ich auch noch das gefunden: [...] 

Mit RS232 Ausgabe..... wäre wohl einfacher, was


 
Xprofan X3.1
Win7 auf AMDX6
20.10.2009  
 




uses the communicating protocol and supports the RS232 4800bps standard, and this supplies convenience to the users who want to write programs themselves.

Na genau, der Treiber wird nen (virtuellen) COM-Port bereitstellen, also OpenCom .
 
20.10.2009  
 




Web
Scanner
gibts nur ein keines Problem, ich hab NICHT den RS232 Typen hier liegen

Spassenshalber habe ich der Software für den RS232 Stick runtergeladen,
aber damit läuft mein Stick natürlich nicht.

Gibt es bei USB offensichtlich unterschiedliche Anbindungen:

1 x über den Comport = RS232
1 x USB irgendwie anders

Werde also besser versuchen das RS232 Dingens zu bekommen?
Oder wir finden noch ne andere Lösung.
Ich sehe ja nicht mal auf welchem Comport ich suchen sollte?
Gibst da ev. ne Auswertesoftware, oder sowas?
 
Xprofan X3.1
Win7 auf AMDX6
20.10.2009  
 



Gerätemanager. ^^
 
21.10.2009  
 




GDL
Genau das meine ich mit Kanal ermitteln.
Das sollte auch mit XProfan gehen und nicht nur über den Gerätemanager.

Ich weis auch nicht wie die mitgelieferten Software die Kanäle ermitteln an welcher COM Nummer nun ihr Gerät liegt.Auf alle Fälle findet die mitgelieferte Software ihr Gerät ohne das der Anwender Einstellungen machen muss,egal welcher Kanal gerade vergeben wurde.Irgendwie gibt es eine Windowsinterne Übergabe.

- Gerätetreiber wird beim Anstecken an USB geladen
- Windows erkennt Hardware und teilt nächst freien USB Kanal zu. Also 4 wenn schon 3 USB belegt sind oder 2 wenn erst 1 USB belegt ist
- Gerätetreiber richtet mit diesem Kanal virtuellen Port ein
- Windows stellt Anwenderprogrammen den virtuellen Port einschliesslich Kanal und Kennung zu verfügung.

Wie greife ich nun mit XProfan auf alle virtuellen Port mit Namen(liefert Treiber) und Kanalnummer(liefert Window) zu und suche meinen Port heraus.Ohne dass der Anwender erst seine Portnummer am Programmstart irgendwo suchen muss ?
 
Windows7 Xprofan 8,9,10 [...]  [...] 
21.10.2009  
 



Comports listen, keine Ahnung - müsste man vlt. ergoogeln. ^^ Hier stehen schon ein paar Befehle: [...] 

Internally the code provides 9 different ways (yes you read that right: Nine) of enumerating serial ports: Using CreateFile, QueryDosDevice, GetDefaultCommConfig, two ways using the Setup API, EnumPorts, WMI, Com Database & enumerating the values under the registry key HKEY_LOCAL_MACHINEHARDWAREDEVICEMAPSERIALCOMM.


Und hier: [...] 
 
21.10.2009  
 




GDL
Hi,

jetzt sind wir an dem Punkt, wo ich mir schon weiter oben direkte USB Unterstützung wünschte.

Den virtuellen Namen kenne ich ja vom Treiber her.

Würde mir sowas vorstellen : kanal%=find$(Portname$)

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
21.10.2009  
 



Verstehe ich nicht. -.-
 
21.10.2009  
 




Detlef
Tussing
Ich habe unter XProfan auch mit USB experimentiert.

Habe jedoch eine DLL bekommen um 8 Aus und 2 Eingangskanäle zu steuern.

Ich vermute bei deiner Software ist eine versteckte DLL

Sieh mal wie ich die Karte anspreche

declare a%,b%,c%,d%,e%
a%=0 Kartenadresse
b%=2Digitalkanaleingang
c%=1Analogkanaleingang
d%=3Digitalkanalausgang
e%=2Analogkanalausgang
def opendevice(1) !"k8055d.dll","OpenDevice"
def closedevice(0) !"k8055d.dll","CloseDevice"
def readdigi(1) !"k8055d.dll","ReadDigitalChannel"
def readanalog(1) !"k8055d.dll","ReadAnalogChannel"
def ClearAllDigital(0) !"K8055d.dll","ClearAllDigital"
def setdigi(1) !"K8055d.dll","SetDigitalChannel"
def analogout(1) !"K8055d.dll","SetAnalogChannel"
def clearallanalog(0) !"K8055d.dll","ClearAllAnalog"
declare dllh&
dllh&=usedll("k8055d.dll")

ifnot dllh&

messagebox "dll nicht geladen error","",0
end

endif

declare kartenadresse&,readdigi&,schreibdigi&,readanalog&,schreibanalog&
kartenadresse&=opendevice(a%)Initialisierung der Karte

while readanalog&<125

readanalog&=readanalog(c%)
locate 10,10
print "Analogkanaleingang",c%," = ",readanalog&
readdigi&=readdigi(b%)
locate 14,10
print "Digitalkanaleinganggang",b%," = ",readdigi&
schreibdigi&=setdigi(d%)
locate 18,10
print "Digitalkanalausgang",d%," = ",schreibdigi&
locate 22,10
print "Kartenadresse:",kartenadresse&
waitinput
schreibanalog&=analogout(e%)

endwhile

waitinput
clearalldigital()
clearallanalog()
closedevice()
freedll dllh&
end

Dies ist nur ein Testprogramm für die USB-Karte.
sicher wäre es schön einen direkten zugriff von XProfan auf USB zu haben.
 
Gruß Detlef Tussing
Windows XP, XProfan 10
21.10.2009  
 




Frank
Abbing
Schau mal hier: [...] 
 
21.10.2009  
 




Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

54.707 Betrachtungen

Unbenanntvor 0 min.
H.Brill09.05.2023
Erasmus.Herold30.04.2019
E.T.25.02.2018
Tango03.09.2017
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie