我找到了Epson TM-U系列收据打印机的抽屉命令代码,并通过Epson Virtual Port分配为COM1。
当我要运行该软件时,我得到了一个IOExecption,引用了"参数不正确"
System.IO.IOException was caught
HResult=-2147024809
Message=The parameter is incorrect.
Source=System
StackTrace:
at System.IO.Ports.InternalResources.WinIOError(Int32 errorCode, String str)
at System.IO.Ports.SerialStream.InitializeDCB(Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Boolean discardNull)
at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
at System.IO.Ports.SerialPort.Open()
at nPOSProj.Conf.Drawer.Open() in C:\sampleProj\Conf\Drawer.cs:line 21
InnerException:
基于我的代码
private SerialPort sp;
public void Open()
{
try
{
Byte[] cashDrawerCmd = { 27, 112, 0, 25, 250 }; // TM-U Command Codes For Opening the Cash Drawer
sp = new SerialPort();
sp.PortName = "COM1";
sp.BaudRate = 9600;
sp.DataBits = 8;
sp.Parity = Parity.None;
sp.StopBits = StopBits.One;
sp.Handshake = Handshake.None;
// Opening
sp.Open();
sp.Write(cashDrawerCmd, 0, cashDrawerCmd.Length);
sp.Close();
}
catch (Exception)
{
sp.Close();
}
}
我不知道哪个参数不对。我是否还必须根据StackTrace指定数据位,stopbits参数?