Feinstaubsensor SDS011 Nova Daten auslesen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Feinstaubsensor SDS011 Nova Daten auslesen

    Hallole!
    Ich habe hier einen NOVA Feinstaub/Partikel Sensor SDS011 den ich gerne ausgelesen hätte!
    Ich weiß das der Sensor über TX RX also Serial Byteweise seine Daten schickt! Mit dem Sensor kam ein COM zu USB Wandler.
    Ich hab vor längerer Zeit mal ein kleines Programm (MASSFLOWMETER TOOL) geschrieben in dem die Daten im Stringformat am Port ankamen und deren Zerlegung/Weiterverarbeitung hat auch geklappt!
    Nun kommen die Daten aber Byteweise herüber und ich habe keinen blassen wie ich das machen bzw. in das alte Programm implementieren soll/kann.
    Die Spec sagt aus daß......:



    .....nur...wie muss ich die Daten im vorhandenen Programm verarbeiten?

    Was muss ich beim öffnen beachten: SerialPort1.Encoding = System.Text.Encoding.ASCII WAS SOLL ICH HIER STATT ASCII ANGEBEN?
    und wenn die Daten im Puffer hängen dann:

    Private Sub SerialPort1_DataReceived(sender As Object, e As IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
    Try
    Dim COMDaten As String = SerialPort1.ReadLine() // STATT READLINE EIN .BytesToRead()
    Me.BeginInvoke(Sub() TransferData(COMDaten))
    Console.Write(COMDaten)
    Application.DoEvents()
    Catch
    End Try
    End Sub

    ....wäre das so die richtige Richtung?
    Danke für jede Hilfe und jeden Hinweis...
    Andi

    *Topic verschoben*
    "Why the heck is this peace of shit not work'in?" ?( ......."Oh...i see! ..cause I'm not work'in!!" 8|

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Beppi4u schrieb:

    Nun kommen die Daten aber Byteweise herüber
    Ist das ggf. ASCII-Plain Text?
    SerialPort hat ein Property .Encoding, das steht per Default auf ASCIIEncoding.
    Ansonsten müsstest Du mal im Handbuch nachschlagen, was da an Daten zurückkommt, oder Du kontaktierst den Support des Herstellers.
    Also:
    Erst aufklären, dann programmieren :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke Rod! .....meine Frau hat vorhin auch gemeint das ich mich oft zu kompliziert ausdrücke! :P
    ​Aber ich Versuchs nochmal.....ich weiß schon wie ich einen String ASCII vom COM Port hole und weiterverarbeite! (siehe MASSFLOWMETERTOOL in Rubrik Kleinkram!)
    ​Ich möchte gerne wissen ob und wie ich das vorhandene Programm verändern muss um" JETZT Byte Code vom COM Port abzuholen " und in Zahlenreihen bzw. Text oder was immer zu überführen!
    ​Das ich die Encoding Property des Ports ändern muss ist klar nur ist .ReadByte oder .BytesToRead oder was das richtige Encoding!??
    ​Und wie geht's danach weiter? Woher weiß der Port wann er einen kompletten Satz Daten empfangen hat? Beim String wartet er ja auf ein CL/CR oder etc.
    ​In der Tabelle steht das das letzte Byte von acht ein AB ist....bedeutet das
    ​Muss ich den Byte Spaghetti dann mit VARIABLE1= Byte(1).toString Encodieren?
    ​Bin etwas Plan und Ratlos! ?(
    "Why the heck is this peace of shit not work'in?" ?( ......."Oh...i see! ..cause I'm not work'in!!" 8|

    Beppi4u schrieb:

    ob und wie
    Zunächst kläre in einem kleinen Testprogramm die Datenstruktur und das Format auf.
    Wenn Du das weist, gehst Du mit dieser Information in Dein anderes Projekt.
    Wie wäre es, wenn Du eine von Deiner Klasse abgeleitere Klasse schreibst, die das unterschiedliche Handling übernimmt, der Rest ist dann schon da.
    Ich gehe mal davon aus, dass Du dieses Handling ordentlich in einer separaten Klasse gekapselt hast.
    Da musst Du nur noch je nach Gerät die eine oder andere Klasse instanziieren und feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!