Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# [C# 2005] Serielle Schnittstelle und Multimeter... (https://www.delphipraxis.net/36893-%5Bc-2005%5D-serielle-schnittstelle-und-multimeter.html)

Markus 27. Dez 2004 19:43


[C# 2005] Serielle Schnittstelle und Multimeter...
 
Hallo,

ein Kumpel hat sich das hier (Multimeter mit RS232 Schnittstelle) bestellt und nun würde ich gerne mit C# (Visual C# 2005 Express) eine Software dafür schreiben. Dazu müsste ich die Daten, die vom Gerät kommen, verwenden können. Dazu die Frage, wie ich das machen kann? In welcher Form werden die Daten kommen? Ich habe das Gerät leider noch nicht und kann es daher noch nicht testen.

[edit=Dax]Sprache richtig eingestellt ;) Mfg, Dax[/edit]

Jelly 27. Dez 2004 19:51

Re: [C# 2005] Serielle Schnittstelle und Multimeter...
 
Da steht doch in der Produktbeschreibung drin, daß eine Software mit dabei ist. Dazu gibts sicherlich auch ein Handbuch eun wenn du Glück hast, liegt ne Delphi Komponente bei. Ich würd einfach mal abwarten, bis du das Gerät in der hand hältst.

mirage228 27. Dez 2004 19:52

Re: [C# 2005] Serielle Schnittstelle und Multimeter...
 
Zitat:

Zitat von Jelly
wenn du Glück hast, liegt ne Delphi Komponente bei.

:P Das wird ihm nichts nützen, denn der Ketzer benutzt das Visual Studio :mrgreen:

mfG
mirage228

Jelly 27. Dez 2004 19:57

Re: [C# 2005] Serielle Schnittstelle und Multimeter...
 
Zitat:

Zitat von mirage228
:P Das wird ihm nichts nützen, denn der Ketzer benutzt das Visual Studio :mrgreen:

Igitt, was ist denn das :gruebel:
Hab zu spät gelesen, daß er in C# proggt. Nichts destotrotz liegt sicherlich ne Beschreibung der Schnittstelle bei.

Generalissimo 27. Dez 2004 20:20

Re: [C# 2005] Serielle Schnittstelle und Multimeter...
 
Wie die Daten kommen, müsste hoffentlich im Handbuch stehen. Zum auslesen ist ne schöne Serial-Komponente andienlich.
Es ist eine im VB.NET Ressource Kit dabei. Die nennt sich SAX.NET. Die kann er ja dazu nutzen.

PS:
Immer wieder diese destruktive Kritik an der Nutzung anderer Programmiersprachen. Lasst sie doch!
Ich benuzte auch VB.NET, C#, C++ oder Delphi. Jenachdem wo sich die Aufgabe eleganter lösen lässt.

Markus 27. Dez 2004 20:40

Re: [C# 2005] Serielle Schnittstelle und Multimeter...
 
Zitat:

Zitat von Generalissimo
Ich benuzte auch VB.NET, C#, C++ oder Delphi. Jenachdem wo sich die Aufgabe eleganter lösen lässt.

Mir geht es genauso, ich programmiere auch Delphi, C++ und jetzt eben C#. Da ich mit C# erst angefangen hab, möchte ich mich ein bißchen einarbeiten und versuche daher, kleine Programme damit zu schreiben...

Zum seriellen Port, ich habs mal mit System.IO.Ports getestet (SerialPort). Dazu habe ich folgenden Code:

Code:
serialPort1.Open();
listBox1.Items.Add(serialPort1.ReadLine());
aber er liest nichts, bzw. es kommt ein Timeout. An was kann das liegen? Hab es mit einem IR-Empfänger für den COM-Port getestet...

Markus 15. Jan 2005 10:15

Re: [C# 2005] Serielle Schnittstelle und Multimeter...
 
So, ich bin jetzt weiter, aber es gibt noch ein Problem. Ich habe ein Formular mit einem Button, einem Timer und einem Label. Dazu folgender Code:

Code:
#region Using directives

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

#endregion

namespace WindowsApplication1
{
    partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            serialPort1.Open();
        }

        private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Write("D");
            }
        }

        private void serialPort1_ReceivedEvent(object sender, System.IO.Ports.SerialReceivedEventArgs e)
        {
            label1.Text= serialPort1.ReadExisting();
        }
    }
}
Wenn ich den Button anklicke kommt aber folgende Meldung:

Code:
Illegal cross-thread operation: Control 'label1' accessed from a thread other than the thread it was created on.
Weiß jemand was das heißt und wie ich es beheben kann? Ich will einfach den Wert, den der Com-Port sendet im Label haben. Wenn ich den Wert mit einer Message-Box ausgebe, geht alles.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz