Gå til innhold

Anbefalte innlegg

Er det noen som har lagd et prog for å lese dallas temp sensor (DS18B20) el?

Hadde vært veldig takknemlig hvis noen hadde en enkel kode og vise det med.

Trenger dette fordi jeg synes det er lettere å lære hvis jeg har noen eksempler som jeg synes er interesant å kikke på.

 

Hilsen Nybegynner.

 

Prøver meg forresten på vb2005 exp. :hmm:

Lenke til kommentar
Videoannonse
Annonse

Har prøvd, men dette eksemplet får jeg ikke til å virke.

vb er ikke helt fornøyd med linja

Dim adapter

Kan ikke dette eksemplet brukes i vb2005exp, eller er det en feil?

 

Nybegynneren

 

 

'-------------------------------------------------------------------------

'Copyright © 2004 Dallas Semiconductor MAXIM Corporation, All Rights Reserved.

'

'Permission is hereby granted, free of charge, to any person obtaining a

'copy of this software and associated documentation files (the "Software"),

'to deal in the Software without restriction, including without limitation

'the rights to use, copy, modify, merge, publish, distribute, sublicense,

'and/or sell copies of the Software, and to permit persons to whom the

'Software is furnished to do so, subject to the following conditions:

'

'The above copyright notice and this permission notice shall be included

'in all copies or substantial portions of the Software.

'

'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS

'OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF

'MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

'IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES

'OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,

'ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR

'OTHER DEALINGS IN THE SOFTWARE.

'

'Except as contained in this notice, the name of Dallas Semiconductor MAXIM

'shall not be used except as stated in the Dallas Semiconductor MAXIM

'Branding Policy.

'

 

Public Class Form1

 

Inherits System.Windows.Forms.Form

 

Public CRLF = New String(Chr(13) & Chr(10), 0, 2) ' makes a carriage-return-linefeed string to begin a new line in a text box

Dim adapter

 

 

#Region " Windows Form Designer generated code "

 

Public Sub New()

MyBase.New()

 

'This call is required by the Windows Form Designer.

InitializeComponent()

 

'Add any initialization after the InitializeComponent() call

 

End Sub

 

'Form overrides dispose to clean up the component list.

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

 

'Required by the Windows Form Designer

Private components As System.ComponentModel.IContainer

 

'NOTE: The following procedure is required by the Windows Form Designer

'It can be modified using the Windows Form Designer.

'Do not modify it using the code editor.

Friend WithEvents ResultsTextBox As System.Windows.Forms.TextBox

Friend WithEvents SearchButton As System.Windows.Forms.Button

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

Me.SearchButton = New System.Windows.Forms.Button

Me.ResultsTextBox = New System.Windows.Forms.TextBox

Me.SuspendLayout()

'

'SearchButton

'

Me.SearchButton.BackColor = System.Drawing.SystemColors.Control

Me.SearchButton.Location = New System.Drawing.Point(336, 112)

Me.SearchButton.Name = "SearchButton"

Me.SearchButton.TabIndex = 0

Me.SearchButton.Text = "&Search"

'

'ResultsTextBox

'

Me.ResultsTextBox.Location = New System.Drawing.Point(24, 24)

Me.ResultsTextBox.Multiline = True

Me.ResultsTextBox.Name = "ResultsTextBox"

Me.ResultsTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical

Me.ResultsTextBox.Size = New System.Drawing.Size(296, 200)

Me.ResultsTextBox.TabIndex = 1

Me.ResultsTextBox.Text = ""

'

'Form1

'

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(424, 266)

Me.Controls.Add(Me.ResultsTextBox)

Me.Controls.Add(Me.SearchButton)

Me.Name = "Form1"

Me.Text = "Get 1-Wire Addresses VB.NET"

Me.ResumeLayout(False)

 

End Sub

 

#End Region

 

 

 

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SearchButton.Click

Dim owd_enum As java.util.Enumeration

Dim owd As com.dalsemi.onewire.container.OneWireContainer

 

Try

' get exclusive use of 1-Wire network

adapter.beginExclusive(True)

 

' clear any previous search restrictions

adapter.setSearchAllDevices()

adapter.targetAllFamilies()

adapter.setSpeed(adapter.SPEED_REGULAR)

 

' enumerate through all the 1-Wire devices found (with Java-style enumeration)

owd_enum = adapter.getAllDeviceContainers

ResultsTextBox.AppendText(CRLF & "1-Wire List:" & CRLF)

ResultsTextBox.AppendText("==========================" & CRLF)

 

' enumerate through all the 1-Wire devices found (with Java-style enumeration)

'

While owd_enum.hasMoreElements()

' retrieve OneWireContainer

owd = owd_enum.nextElement()

' retrieve OneWireAddress

ResultsTextBox.AppendText(CRLF)

ResultsTextBox.AppendText("Address = " & owd.getAddressAsString & CRLF)

ResultsTextBox.AppendText("Description = " & owd.getDescription & CRLF)

End While

' end exclusive use of 1-Wire net adapter

adapter.endExclusive()

Catch ex As Exception

ResultsTextBox.AppendText(CRLF & CRLF & "Error: " & ex.ToString)

End Try

 

End Sub

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Try

' get the default adapter

adapter = com.dalsemi.onewire.OneWireAccessProvider.getDefaultAdapter

' initialize adapter to proper settings

 

' print that we got an adapter

ResultsTextBox.AppendText(CRLF & "Adapter: " & adapter.getAdapterName & " Port: " & adapter.getPortName & CRLF & CRLF)

Catch ex As Exception

ResultsTextBox.AppendText(CRLF & CRLF & "Error: " & ex.ToString)

End Try

End Sub

End Class

Lenke til kommentar

Jaja det gjør den.

 

Warning 1 Variable declaration without an 'As' clause; type of Object assumed.

 

Samme feil på linja over forresten. (publi crlf ..... )

 

Så starter programmet med denne feil mld i vinduet der jeg regner med den skal liste opp enhetene den finner

 

 

Error: System.TypeInitializationException: Typeinitialiseringen for com.dalsemi.onewire.OneWireAccessProvider forårsaket et unntak. ---> System.IO.FileNotFoundException: Kan ikke laste inn filen eller samlingen vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller en av avhengighetene. Systemet finner ikke angitt fil.

Filnavn: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ---> System.IO.FileNotFoundException: Kan ikke laste inn filen eller samlingen vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller en av avhengighetene. Systemet finner ikke angitt fil.

Filnavn: vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

 

=== Tilstandsinformasjon før binding===

LOG: Bruker = STEFFENPB\Steff

LOG: DisplayName = vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

(Fully-specified)

LOG: Progbase = file:///C:/Documents and Settings/Steff/Skrivebord/dallas/dotnet_get1wire_addresses/Get1WireAddresses/bin/

LOG: Opprinnelig PrivatePath = NULL

Kallende samling : OneWireAPI.NET, Version=1.0.1418.40207, Culture=neutral, PublicKeyToken=9d3abe1382c69a37.

===

LOG: Denne bindingen begynner i innlastingskonteksten default.

LOG: Fant ingen programkonfigurasjonsfil.

LOG: Bruker maskinkonfigurasjonsfil fra C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.

LOG: Fant omadressert versjon i "framework"-konfigurasjonen: 1.0.5000.0 omadressert til 2.0.0.0.

LOG: Etter-policy-referanse: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

LOG: Samme binding ble sett tidligere og mislyktes med hr = 0x80070002.

 

ved com.dalsemi.onewire.OneWireAccessProvider..cctor()

 

 

--- Slutten på sporingen av intern unntaksstakk ---

ved com.dalsemi.onewire.OneWireAccessProvider.getDefaultAdapter()

ved WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) i C:\Documents and Settings\Steff\Skrivebord\dallas\dotnet_get1wire_addresses\Get1WireAddresses\GetAddresses.vb:linje 144

 

 

 

Nybegynneren

Lenke til kommentar

Høyreklikk på funksjonen i bold på linjen, og velg go to definition (du skal også få opp en litet popup om du holder musen over):

 

adapter = com.dalsemi.onewire.OneWireAccessProvider.getDefaultAdapter

 

Og se hvilken type den returnerer.

 

Så legger du til dette i linjen som feilet:

 

Dim adapter AS typen_som_ble_returnert

Lenke til kommentar

Hvis jeg høyreklikker og go to definition ender jeg på adapter i Dim adapter linja.

 

Ved å holde musa over står det

Variable declaration without an 'As' clause; type of Object assumed.

 

Nybegynneren

Lenke til kommentar

Høyreklikk på funksjonen i bold på linjen, og velg go to definition:

 

adapter = com.dalsemi.onewire.OneWireAccessProvider.getDefaultAdapter

 

 

 

 

Tror ikke jeg klarer å få ordet du skal trykke på klarer frem....

Endret av jorn79
Lenke til kommentar

Ja det var klart det :D

 

Dim adapter As com.dalsemi.onewire.adapter.DSPortAdapter :D

og ett problem mindre

 

Tusen takk.

 

Så neste feil?

 

linje 117

adapter.setSpeed(adapter.SPEED_REGULAR)

 

Warning 1 Access of shared member, constant member, enum member or nested type through an instance; qualifying expression will not be evaluated.

 

 

Prog starter og viser

 

Error: System.TypeInitializationException: Typeinitialiseringen for com.dalsemi.onewire.OneWireAccessProvider forårsaket et unntak. ---> System.IO.FileNotFoundException: Kan ikke laste inn filen eller samlingen vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller en av avhengighetene. Systemet finner ikke angitt fil.

Filnavn: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ---> System.IO.FileNotFoundException: Kan ikke laste inn filen eller samlingen vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller en av avhengighetene. Systemet finner ikke angitt fil.

Filnavn: vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

 

=== Tilstandsinformasjon før binding===

LOG: Bruker = STEFFENPB\Steff

LOG: DisplayName = vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

(Fully-specified)

LOG: Progbase = file:///C:/Documents and Settings/Steff/Skrivebord/dallas/dotnet_get1wire_addresses/Get1WireAddresses/bin/

LOG: Opprinnelig PrivatePath = NULL

Kallende samling : OneWireAPI.NET, Version=1.0.1418.40207, Culture=neutral, PublicKeyToken=9d3abe1382c69a37.

===

LOG: Denne bindingen begynner i innlastingskonteksten default.

LOG: Fant ingen programkonfigurasjonsfil.

LOG: Bruker maskinkonfigurasjonsfil fra C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.

LOG: Fant omadressert versjon i "framework"-konfigurasjonen: 1.0.5000.0 omadressert til 2.0.0.0.

LOG: Etter-policy-referanse: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

LOG: Samme binding ble sett tidligere og mislyktes med hr = 0x80070002.

 

ved com.dalsemi.onewire.OneWireAccessProvider..cctor()

 

 

--- Slutten på sporingen av intern unntaksstakk ---

ved com.dalsemi.onewire.OneWireAccessProvider.getDefaultAdapter()

ved WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) i C:\Documents and Settings\Steff\Skrivebord\dallas\dotnet_get1wire_addresses\Get1WireAddresses\GetAddresses.vb:linje 145

 

 

Nybegynneren.

Lenke til kommentar

Genialt igjen :D

 

Ingen feilmld under debugg nå. Kun i vindu til prog

Noen gode råd igjen?

 

 

Error: System.TypeInitializationException: Typeinitialiseringen for com.dalsemi.onewire.OneWireAccessProvider forårsaket et unntak. ---> System.IO.FileNotFoundException: Kan ikke laste inn filen eller samlingen vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller en av avhengighetene. Systemet finner ikke angitt fil.

Filnavn: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ---> System.IO.FileNotFoundException: Kan ikke laste inn filen eller samlingen vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a eller en av avhengighetene. Systemet finner ikke angitt fil.

Filnavn: vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

 

=== Tilstandsinformasjon før binding===

LOG: Bruker = STEFFENPB\Steff

LOG: DisplayName = vjslib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

(Fully-specified)

LOG: Progbase = file:///C:/Documents and Settings/Steff/Skrivebord/dallas/dotnet_get1wire_addresses/Get1WireAddresses/bin/

LOG: Opprinnelig PrivatePath = NULL

Kallende samling : OneWireAPI.NET, Version=1.0.1418.40207, Culture=neutral, PublicKeyToken=9d3abe1382c69a37.

===

LOG: Denne bindingen begynner i innlastingskonteksten default.

LOG: Fant ingen programkonfigurasjonsfil.

LOG: Bruker maskinkonfigurasjonsfil fra C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.

LOG: Fant omadressert versjon i "framework"-konfigurasjonen: 1.0.5000.0 omadressert til 2.0.0.0.

LOG: Etter-policy-referanse: vjslib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

LOG: Samme binding ble sett tidligere og mislyktes med hr = 0x80070002.

 

ved com.dalsemi.onewire.OneWireAccessProvider..cctor()

 

 

--- Slutten på sporingen av intern unntaksstakk ---

ved com.dalsemi.onewire.OneWireAccessProvider.getDefaultAdapter()

ved WindowsApplication1.Form1.Form1_Load(Object sender, EventArgs e) i C:\Documents and Settings\Steff\Skrivebord\dallas\dotnet_get1wire_addresses\Get1WireAddresses\GetAddresses.vb:linje 147

Lenke til kommentar

Ja litt sløvt av meg å ikke se det.

Må jeg den fordi DLLen er bygd på j# ?

 

Men hadde den før jeg leste svaret ditt. (Og litt stolt av det)

 

Tusen takk igjen for god hjelp.

 

Nå virker det.

Så er det bare å begynne å kikke litt mer på koden og prøve å endre litt på ting for å lære mer.

 

Nybegynneren

Lenke til kommentar
Ok

 

Noen gode forslag?

Har lyst til å lære mer om å styre/lese Dallas 1wire devices, som temp sensor og switcher ++

 

Nybegynneren

8584174[/snapback]

 

Hvordan du bruker den kan du jo lære derfra. Bare husk at koden ikke er noe bra skrevet. Når du lærer deg VB.Net godt, vil du se det :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...