So I am working on this project that will capture and store the printer data sent from POS (Ruby SuperSystem II) to TM-U950 Receipt Printer using RS232 USB-To-Serial cable. Is this project feasible?
Here is picture showing high level diagram explaining the physical architecture: HDL
And this is code written in C# looks like:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using System.IO;
using System.Text;
namespace ConsoleAppListener
{
internal class Program
{
static void Main(string[] args)
{
SerialPort mySerialPort = new SerialPort("COM6");
Console.WriteLine("");
Console.WriteLine("******* Serial COM:6 is Working ******");
mySerialPort.BaudRate = 9600;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Encoding = Encoding.GetEncoding(65001);
mySerialPort.Handshake = Handshake.XOnXOff;
//mySerialPort.DtrEnable = true;
mySerialPort.Open();
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
if (mySerialPort.IsOpen)
{
Console.WriteLine(mySerialPort.PortName + ": Open");
//System.Threading.Thread.Sleep(1000);
}
else
{
throw new InvalidOperationException("Serial Port is already Open..");
}
//Console.WriteLine("Press any key to continue...");
Console.WriteLine();
Console.ReadKey();
mySerialPort.Close();
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
if (indata != null)
{
Console.WriteLine("Listen from Ruby --> "+ indata);
callmyfunction(indata.ToString());
}
}
private static void callmyfunction(string data)
{
// Does something but printing for now!
StreamWriter File = new StreamWriter("Report.txt", true);
File.WriteLine(data);
File.Close();
}
}
}
Output of the program while printing is printing data as shown in HDL image: Program Output
Concern: The program prints data in "?" and "`" characters rather than plain text as printer is able to print as shown in Program Output Image.