Computer Hardware Forum - TweakPC

Computer Hardware Forum - TweakPC (https://www.tweakpc.de/forum/)
-   Programmiersprachen (https://www.tweakpc.de/forum/programmiersprachen/)
-   -   C# Serialport Parity und stop bits (https://www.tweakpc.de/forum/programmiersprachen/19828-c-serialport-parity-und-stop-bits.html)

BomberD 28.10.2004 07:42

C# Serialport Parity und stop bits
 
Hi folks,

ich quäle mich grad n bissel mit c# rum. ich möchte einen atmel mega 16l microcontroller über den comport ansprechen (ein programm läuft schon auf dem teil)

nun das problem: ich weis zwar , dass ich einstellen muss was für parity und stopbits genommen werden sollen. aber ich finde nicht heraus wie ich die einstelle. die hilfe ist da irgendwie nicht sehr hilfreich.

ichhab schon parity objekte angelegt kann denen aber kleinerlei parameter mit auf den weg geben. ist also irgendwie n bissel hohl...

ich weis nicht wo mein gehirn grad hakt...

BomberD 28.10.2004 09:42

so gehts:
SerialPort S = new SerialPort("Com1",9600,Parity.None ,8,StopBits.One );

lalala:

jetzt muss ich nur noch lesen :(

hmm.. vielleicht gibts irgendwelche event handler.. who knows

tele 28.10.2004 17:44

hm ... mal ne referenz gesucht - c# is ja ungemein java abgekupfert - viellecht gibts da auch sowas wie inputStreams ?

BomberD 28.10.2004 18:37

ichhabs schon hinbekommen.

ich poste morgen mal die geschichte..
kennst du dich mit htreads aus?
ich hab zwar nen writeSerial thread hinbekommen. aber keinen readserial..

wie gesagt quellcode morgen ;)

BomberD 28.10.2004 19:47

für lesen war ne warteschleife

und n event für received

es wird inner whilr(true) geschaut ob die variable beschrieben sonst weiter.

der event wird ausgelöst sobald daten im puffer sind.

letztlich isses ganz einfach... naja.. nur drauf kommen muss man halt

BomberD 29.10.2004 07:39

wie versprochen da quellcode.
ichhabn paar testsachen rausgelöscht. ich hoffe nix wichtiges... jedenfalls funzt es bei mir. kann halt sein dass ich hier im post irgendwo n kommentar vergessen hab aufzuheben oder einzustellen.
zur zeit experimentier ich mit threads. das da unten nutzt zwar nen thread aber relativ sinnlos...

[code]#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports ;
using System.Threading;
#endregion

namespace Comport
{
class Program
{
static SerialPort S = new SerialPort("Com1", 9600, Parity.None, 8, StopBits.One);
static string ergebnis = string.Empty;
static string text = string.Empty;

[STAThread]
static void Main(string[] args)
{
//Variablen und Objekte

//startausgabe
Console.WriteLine("hallo");
Console.WriteLine("geben Sie sieben Zeichen ein:");

//text von der console einlesen
text=Console.ReadLine();

//receivedevent aktivieren
S.ReceivedEvent += new SerialReceivedEventHandler(Received);
S.Open();//serielle verbindung öffnen
Thread sendThread = new Thread(new ThreadStart(writeSerial));
sendThread.Start();


while (true) //warte auf Daten über den Seriellen Port
{
if (!ergebnis.Equals(string.Empty)) break; //abbruch wenn daten da
}
Console.WriteLine(ergebnis);//empfangene daten ausgeben

S.Close();//serielle verbindung beenden

System.Threading.Thread.Sleep(5000);
}

private static void writeSerial()
{
//übergibt die Eingabe an den seriellen Port
S.Write(text);
}


static private void Received(object sender, SerialReceivedEventArgs e)
{
//überträgt daten aus der seriellen schnittstelle in variable
ergebnis = S.ReadExisting();
}


}
}[/code]

tele 29.10.2004 16:39

wieso quälst du dich mit ner objektorientierten sprache rum wenn dus dann letztendlichkomplett prozedural schreibst?

BomberD 29.10.2004 16:42

hmmppffff....

hab doch geschieben dass ich grad anfange an ner kommunikation mit nem mikrokontroller zu basteln. da isses mir völlig egal ob ich prozedural oder oo programmioere. weil der quellcode für das etablieren der verbindung letztlich völlig gleich ist. nur halt in einem fall in nem objekt versteckt.

warum soll ich klassen schreiben wenn ich alles in 25 zeilen zusamenschreiben kann warum soll ich klassen schreiben wenn ich die eh nur einmal benutze?

das würde überhaupt keinen sinn ergeben. oder?

edit:
für eine Anschließendes Projekt wirds natürlich richtig OOOO ;)

sag mal du scheinst ja auch son bissel der auskenner zu sein.
die events die man in java erstellen kann legt denen ne interrupt steuerung zu grunde? oder muss ich da separat was aufbauen?

ich hab mich noch nicht mit echtzeit systemen auseinander gesetzt. aber jetzt hab ich teilweise sehr zeitkritische operationen. deshalb nutze ich ja auchn mikrocontroller. der ist risc und ich hab da ganz genau die takte die ich benötige für die ausführung von befehlen. aber auch auf der übergeordneten anwendung die auf dem pc läuft könnte das noch zum problem werden...

tele 29.10.2004 18:37

nene java baut net aufs system, auf - sondern auf die VM (virtual machine) das ist etwaslosgelöster von der hardware

BomberD 29.10.2004 18:41

irgendwie fehlte das mit den echtzeitbedingungen im studium...
gabs nur bei wahl/pflicht fächern...

da ist man nun dipl ing und hat dennoch solche fragen *lol*
ich glaub ich programmier zu wenig ;)

edit: ist v.i.r.t.u.a.l. jetzt auch zensiert?!?!
wasn das lomisches. ist dasn schlimmes wort?!?!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr.

Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.