Antonio
Antonio

Reputation: 1231

Infrared command with pocket pc

i have an infrared remote control and i want replace this with my PPC. My Mitac P550 has an infrared serial port but i dont know how to retrieve and resend the sequence of byte..... It's possible get the data with SerialPort component of .net for this pourpose?

Thanks

Upvotes: 0

Views: 301

Answers (1)

user153923
user153923

Reputation:

You need to write two (2) methods and install them on each end of your communications: A Send and a Receive.

A generic Send routine would send a message to some host listening on a given port number. Here is a simple example:

public static void Send(string message, string host, int port) {
  if (!String.IsNullOrEmpty(message)) {
    if (port < 80) {
      port = DEF_PORT;
    }
    Byte[] data = Encoding.ASCII.GetBytes(message);
    using (var client = new TcpClient(host, port)) {
      var stream = client.GetStream();
      stream.Write(data, 0, data.Length);
      stream.Close();
      client.Close();
    }
  }
}

A generic Receive routine would need to know the port number to listen on and should return the data that it receives. Here is a simple example of it:

public static string Receive(int port) {
  string data = null;
  listener = new TcpListener(IPAddress.Any, port);
  listener.Start();
  using (var client = listener.AcceptTcpClient()) { // waits until data is avaiable
    int MAX = client.ReceiveBufferSize;
    var stream = client.GetStream();
    Byte[] buffer = new Byte[MAX];
    int len = stream.Read(buffer, 0, MAX);
    if (0 < len) {
      data = Encoding.UTF8.GetString(buffer, 0, len);
    }
    stream.Close();
    client.Close();
  }
  return data;
}

Here is the full class code that I used for this:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;

namespace AcpMobile5 {

  class TestClass1 : Form {

    public const int DEF_PORT = 8000;
    private static TcpListener listener;

    public static string Receive(int port) {
      string data = null;
      listener = new TcpListener(IPAddress.Any, port);
      listener.Start();
      using (var client = listener.AcceptTcpClient()) { // waits until data is avaiable
        int MAX = client.ReceiveBufferSize;
        var stream = client.GetStream();
        Byte[] buffer = new Byte[MAX];
        int len = stream.Read(buffer, 0, MAX);
        if (0 < len) {
          data = Encoding.UTF8.GetString(buffer, 0, len);
        }
        stream.Close();
        client.Close();
      }
      return data;
    }

    public static void Send(string message, string host, int port) {
      if (!String.IsNullOrEmpty(message)) {
        if (port < 80) {
          port = DEF_PORT;
        }
        Byte[] data = Encoding.ASCII.GetBytes(message);
        using (var client = new TcpClient(host, port)) {
          var stream = client.GetStream();
          stream.Write(data, 0, data.Length);
          stream.Close();
          client.Close();
        }
      }
    }

  }

}

Upvotes: 0

Related Questions