Italia
Fonte/ Codesnippets

Auslesen Temperaturfühler Usb

 
- Page 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

@Clos
a>(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  
 



 
- Page 3 -



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


114 kB
Hochgeladen:20.10.2009
Downloadcounter127
Download
 
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 per den RS232 Stick runtergeladen,
aber damit corre mein Stick naturalmente nicht.

Gibt es bei USB offensichtlich unterschiedliche Anbindungen:

1 x circa 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 circa 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 per 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


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

56.836 Views

Untitledvor 0 min.
H.Brill09.05.2023
Erasmus.Herold30.04.2019
E.T.25.02.2018
Tango03.09.2017
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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