Steuerung in C#

daniel_sudy
Beiträge: 9
Registriert: Freitag 5. März 2010, 09:52

Steuerung in C#

Beitrag von daniel_sudy » Freitag 5. März 2010, 11:23

Hallo, ich habe eine Frage zum Thema UDP. Ich habe gelesen, dass sich die Leiste mit dem Befehl “Sw_on" + Segment + Passwort + CrLf einschalten lässt. Nun habe ich in C# eine UDP Verbindung aufgebaut, nur bin ich mir jetzt nicht sicher, wie ich den Befehl übertragen soll, bzw. ob es funktioniert, da bei UDP der Befehl ja in byts umgewandelt werden muss, um ihn zu übertragen!

Hier ein kleiner Ausschnitt aus meinem Code, vl kann mir ja wer helfen!

byte[] data = new byte[1024];
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("192.168.100.3"),75);

Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp);

string test = "\"Sw_on\" 1 test CrLf";//Hier bin ich mir nicht sicher
data = Encoding.ASCII.GetBytes(test);
server.SendTo(data, data.Length, SocketFlags.None, ipep);
server.Close();

AnelHomeUser
Beiträge: 2
Registriert: Donnerstag 18. März 2010, 20:50

Re: Steuerung in C#

Beitrag von AnelHomeUser » Donnerstag 18. März 2010, 20:54

So funktioniert es bei mir:

//Parameter An/Aus
bool SwitchON = true;
//Parameter Dosennummer
int PowerLineNumber = 1;

System.Net.Sockets.UdpClient oUDPServer = null;
try
{
oUDPServer = new System.Net.Sockets.UdpClient();
oUDPServer.Connect(new System.Net.IPEndPoint(System.Net.IPAddress.Parse("192.168.178.31"), 75));
string sCommand;
if (SwitchON)
{
// Anschalten
sCommand = "Sw_on";
}
else
{
// Ausschalten
sCommand = "Sw_off";
}
byte[] aoSendData = System.Text.Encoding.ASCII.GetBytes(sCommand + PowerLineNumber + "user" + (char)0 + @"\r\n");
oUDPServer.Send(aoSendData, aoSendData.Length);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
finally
{
if (oUDPServer != null)
oUDPServer.Close();
}

daniel_sudy
Beiträge: 9
Registriert: Freitag 5. März 2010, 09:52

Re: Steuerung in C#

Beitrag von daniel_sudy » Montag 3. Oktober 2011, 11:02

Wie sieht kann ich nun den Status der einzelnen Dosen überprüfen, einen Boradcast an die 255.255.255.255 schicken, aber das funktioniert bei mir nicht!!!

Antworten