Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von MartinH
Thema: Universelle Fernbedienung mit SerialPort Klasse
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

du must die Sende/Pause-Verhältnisse für die Übertragung selber erstellen.
Du kannst da nicht einfach nur Daten senden.

Gruß Martin

Thema: Problem mit der seriellen schnittstelle
Am im Forum: GUI: Windows-Forms

ich verstehe nicht was du da machen willst. Du öffnest den Port, liest und schließt ihn wieder. D.h. in dem moment wo du liest müssen auch die Daten ankommen.
Das wird wohl so nicht funktionieren. Öffne den Port bei Programmstart und schließe ihn bei Programmende. Auserdem solltest du mit events arbeiten.

Thema: PING einer hosts ohne admin rechte
Am im Forum: Rund um die Programmierung

Hallo,

das Problem hatte ich auch schon mal.
Das habe ich fefunden, funktioniert problemlos


		// Methode zum Ausführen des Ping-Befehls
	public static bool Ping(string host, int timeout)
	{
		// DNS-Abfrage zur Ermittlung der IP-Adresse des Zielhosts
		// starten
		IPHostEntry ipHostEntry = Dns.Resolve(host);
		IPAddress ip = ipHostEntry.AddressList[0];

		// Port 7 des Hosts auswählen
		IPEndPoint ipEndPoint = new IPEndPoint(ip, 7);

		// Einen Socket für das ICMP-Protokoll erzeugen
		Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp);

		// ICMP-Packet (ICMP-Type = 8: Echo Request)
		byte[] icmpPacket = {8, 0, 0xF7, 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
		int result = socket.SendTo(icmpPacket, icmpPacket.Length, SocketFlags.None, ipEndPoint);

		ArrayList receivedData = new ArrayList();
		receivedData.Add(socket);
		Socket.Select(receivedData, null, null, timeout*1000);
		byte[] receiveICMPPacket = new byte[200];
		int bytes = 0;

		if (receivedData.Count > 0)
		{
			// Daten jetzt auslesen
			bytes = socket.Receive(receiveICMPPacket, receiveICMPPacket.Length, SocketFlags.None);
			if (getICMPChecksum(receiveICMPPacket) == 0)
				return true;
			else
				return false;
		}
		else
			return false;

	}
		static ushort getICMPChecksum(byte[] icmpP)
		{
			byte[] buffer;
			if ((icmpP.Length % 2) > 0)
			{
				buffer = new byte[icmpP.Length +1];
				icmpP.CopyTo(buffer, 0);
				buffer[buffer.Length - 1] = 0;
			}
			else
			{
				buffer = new byte[icmpP.Length];
				icmpP.CopyTo(buffer, 0);
			}
			int checksum = 0;
			for (int i = 0; i < buffer.Length; i += 2)
			{
				byte firstByte = buffer[i+1];
				byte secondByte = buffer[i];
				ushort word = secondByte;
				word = (ushort)((word << 8) + firstByte);
				checksum += word;
			}
			checksum = (checksum >> 16) + (checksum & 0xFFFF);
			checksum += (checksum >> 16);

			// Einerkomplement
			return (ushort)(~checksum);
		}

MartinH

Thema: RS 232 unter WinXP mit C# ansprechen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn du .Net 1.1 verwendest, dann ist OpenNetCF nicht schlecht.

Thema: integer high und low byte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Es ist doch auch viel einfacher die ganzen Bitoperationen in Hex durchzuführen,
da 4 Bit immer einer Hexziffer entsprechen.
Da liest sich der Code viel leichter.

Thema: integer high und low byte
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Eigendlich fehlt jetzt der Hinweis von Talla mit den Bitoperationen

Thema: Serial-Port kaputt?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Torkel,

ich würde in deinem Fall eine galvanische Trennung der beiden Geräte vornehmen.

Die meisten Probleme/Defekte kommen von Potentialunterschiede.

Thema: VS 2003 Build nach Codeänderung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Es wird der letzte Compilierte Code ausgeführt.

Thema: VS 2003 Build nach Codeänderung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

ich habe das Problem, daß ich nach einer Codeänderung meine Projekte neu erstellen muß.
Das automatische erstellen beim Debug-Start funktioniert nicht mehr.
Einstellungen habe ich (zumindest bewust) nicht geändert.

Kann mir jemand helfen?

Danke schonmal

Thema: tic tac toe
Am im Forum: Projekte

Nich schlecht, aber wenn ich gewonnen habe, dann meint der Rechner er kann weiterspielen. Wenn er dann als nächstes auch 3 Felder belegen kann, dann fühlt er sich als Sieger*g*

Thema: rs232 schnittstelle abfragen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Alexp,

ich dachte eigendlich schon daran, daß du, wie du am Anfang geschrieben hast, ein Relais dazwischen schaltest.
Die benötigte Spannung nimmst du von der seriellen Schnittstelle vom PC.

Du setzt RTS und verbindest RTS -> Relaiskontakt -> CTS.

Damit ändert sich CTS wenn der Kontakt öffnet.

Thema: rs232 schnittstelle abfragen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Alexp,

in deinem Fall würde ich einfach die Handshake-Leitungen nehmen. Da hast du dann auch den Spannungspegel den du brauchst.

Thema: RS232 lesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich benutze OpenNetCF für meine Progs die mit der Seriellen Schnittstelle arbeiten. Das funktioniert gut bei mir. Ich benutze aber auch .Net 1.1.

Ich würde einfach mal mit einer 2. Schnittstelle und einen Nullmodemkabel versuchen etwas aus der Schnittstelle zu lesen.

Thema: RS232 lesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

wenn ich das richtig gesehen habe, löscht du RTS. Vielleicht sendet deshalb der Kartenleser nicht. Hyperterminal setzt RTS immer.

Thema: SPS S5 Kommunikation via ISO 8073 (RFC 905)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

such doch mal nach Langer Communications, die haben die S7 Kommunikation,

vielleicht gibt es bei denen auch was für die S5.

Thema: rs232 schnittstelle
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich nehme OpenNETCF für die serielle Schnittstelle.

opennetcf.org

Da solltest du alles finden.

Thema: ArrayList in XML
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mit XmlDocument kannst du da auch gut weiterkommen.

So habe ich auch Arraylists in XML-String umgewandelt.

ok, hat Talla oben schon erwähnt

Thema: text mit TabStop getrennt auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

indem du (char) 0x09 als Zeichen angibst.

Thema: text mit TabStop getrennt auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das ist doch mit Split kein problem.
Da bekommst du ein Stringarray mit den einzelnen Feldern

Thema: Verbindung zu einer IP - Adresse testen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Nargo,

das hat norman:_timo auch gemeint, deshalb mein Tipp mit OpenNetCF.

Die Lib enthält alles was das Herz begehrt für den Pocket-PC.

Thema: Verbindung zu einer IP - Adresse testen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

schau doch mal OpenNetCF

Da gibts sehr viele nützliche Sachen für den Pocket-PC.

Hab grad auch eine Ping-Funktion gesehen.

Thema: Verbindung zu einer IP - Adresse testen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Nargo,

versuch es mal mit dem Ping, Code im Anhang.



Martin

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@norman_timo

genau, das angesteckte Gerät verschluckt die Zeichen, nicht der sendende PC. Auch habe ich keine probleme die ankommenden Daten zu lesen.

Da sich die Baudrate nicht ändern lässt, muss ich beim senden einfach Byte für Byte mit kurzen pausen wegschicken.

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Möchte ich eigendlich nicht. Hab ich mir schon angeschaut, finde ich aber nicht so gut.

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe da mit Async Professional gearbeitet, da gab es verschiedene Funktionen zum Warten. Entweder angabe in Millisekunden oder Ticks

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@svenson

genau das ist das problem

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Meine Daten werden alle übertragen, das ist nicht das Problem, auch die Baudrate stimmt.
Ich habe auch schon mal einen V25-Rechner mit 8MHz unter TurboPascal programmiert. Da hatte ich auch solche Probleme. Da dort alles Interruptgesteuert ist, konnte es auch vorkommen, daß Zeichen einfach verschluckt wurden.
Jetzt sitze ich an der anderen Seite, und muss versuchen dem Rechner die Zeichen nicht zu schnell hintereinander zu schicken.
Unter Delphi war das auch kein problem mit Verzögerungen.

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Da ich nur ab und zu ein 10-Byte Datenwort senden muss, hält sich die Last durch die Schleife eigendlich in Grenzen.

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das Gerät ist fest auf 9600/8/n/2 eingestellt.

Ein Handshake ist nicht möglich.
Das Problem ist wirklich die geschwindigkeit, mit der ich das gesamte Datenwort sende. Das lässt sich sehr gut am Oszi nachvollziehen. Werden die Bytes zu schnell hintereinander gesendet, verschluckt das Endgerät einzelne Zeichen.

Ich habe jetzt eine Schleife eingebaut, der Wert kann über einen Parameter geändert weden. So funktionierts jetzt, das mit dem Timer versuch ich aber auch noch.

Thema: Delay/Verzögerung in C#
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich versuchs mal mit dem Timer, bis ich eine bessere Lösung finde.