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


Nicht entsorgen, irgendwas übersehnwa - vlt. können wir noch einmal von vorn beginnen. -.-
 
20.03.2010  
 




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
 
Gruß Detlef Tussing
Windows XP, XProfan 10
21.03.2010  
 




Web
Scanner
Hi Zusammmen,

hier die einzige DLL die es dazu gibt: [...] 

Danke

Grüße

Web

7 kB
Hochgeladen:21.03.2010
Ladeanzahl102
Herunterladen
 
Xprofan X3.1
Win7 auf AMDX6
21.03.2010  
 




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
================
 
Gruß Detlef Tussing
Windows XP, XProfan 10
22.03.2010  
 




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
 
Xprofan X3.1
Win7 auf AMDX6
24.03.2010  
 



Kannst auch nicht mit klarkommen, die Definition TEMPerInterface fehlt. :/
 
25.03.2010  
 




Web
Scanner
Hmmm, dann gehts so also auch nicht...

Grüße

Webbi
 
Xprofan X3.1
Win7 auf AMDX6
27.03.2010  
 



Also nochmal, die aktive Comport-Nummer des Gerätes ist parat?
 
27.03.2010  
 




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
 
Xprofan X3.1
Win7 auf AMDX6
27.03.2010  
 



Ich hab einfach keine Idee, son Mist...

Mit Gerät würde ich wohl mit obigen Apis testen, vlt. kommt man damit weiter.
 
27.03.2010  
 




Web
Scanner
Ich schick Dir das Thermometer-Dingens gern mal rüber, wenn Du magst

Grüße

Web
 
Xprofan X3.1
Win7 auf AMDX6
27.03.2010  
 




Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

54.665 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