Exemplo n.º 1
0
        //打印机检测
        private void button1_Click(object sender, EventArgs e)
        {
            bool IsOpen = false;

            switch (Port)
            {
            case "并口":
                SendMoneyBox(cboxBK.Text);
                break;

            case "串口":
                System.IO.Ports.SerialPort sPort = new System.IO.Ports.SerialPort();
                sPort.PortName  = cboxCK.Text;
                sPort.BaudRate  = 9600;
                sPort.DataBits  = 8;
                sPort.StopBits  = (StopBits)Enum.Parse(typeof(StopBits), "1");
                sPort.Parity    = (Parity)Enum.Parse(typeof(Parity), "1");
                sPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), "1");
                IsOpen          = POSUtility.Instance.OpenComPort(ref sPort);
                sPort.Dispose();
                break;

            case "USB":
                IsOpen = POSUtility.Instance.OpenUSBPort(cboxUSB.Text);
                break;

            case "驱动":
                Gfunc.OpenCash();
                break;

            case "网口":
                IsOpen = POSUtility.Instance.OpenNetPort(maskedtboxIP.Text);
                break;
            }
            if (IsOpen)
            {
                try
                {
                    if (Port == "并口")
                    {
                        //开钱箱
                        bool res = POSUtility.Instance.PrintESC(3);
                        if (!res)
                        {
                            MessageBox.Show("开钱箱失败!指令调用返回值:" + res.ToString(), "系统提示");
                            LoggerHelper.Log("MsmkLogger", "开钱箱失败!指令调用返回值:" + res.ToString(), LogEnum.SysLog);
                        }
                        else
                        {
                            LoggerHelper.Log("MsmkLogger", Gattr.OperId + "通过打印设置打开钱箱", LogEnum.SysLog);
                        }
                        //关闭端口
                        POSUtility.Instance.ClosePrintLPT();
                    }
                    else
                    {
                        IntPtr res = POSUtility.POS_KickOutDrawer(0x00, 100, 100);
                        if ((uint)res != POSUtility.Instance.POS_SUCCESS)
                        {
                            MessageBox.Show("开钱箱失败!指令调用返回值:" + res.ToString(), "系统提示");
                            LoggerHelper.Log("MsmkLogger", "开钱箱失败!指令调用返回值:" + res.ToString(), LogEnum.SysLog);
                        }
                        else
                        {
                            LoggerHelper.Log("MsmkLogger", Gattr.OperId + "通过打印设置打开钱箱", LogEnum.SysLog);
                        }
                        //关闭端口
                        POSUtility.Instance.ClosePrinterPort();
                    }
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message, "系统提示");
                }
            }
            else
            {
                if (Port != "驱动" && Port != "并口")
                {
                    MessageBox.Show("端口打开失败,请检查一下端口选择是否正确!", Gattr.AppTitle);
                }
            }
        }
Exemplo n.º 2
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            bool IsOpen = false;

            System.IO.Ports.SerialPort sPort = new System.IO.Ports.SerialPort();
            switch (Port)
            {
            case "并口":
                SendToLTP(cboxBK.Text);
                break;

            case "串口":
                sPort.PortName  = cboxCK.Text;
                sPort.BaudRate  = 19200;
                sPort.DataBits  = 8;
                sPort.StopBits  = (StopBits)Enum.Parse(typeof(StopBits), "1");
                sPort.Parity    = (Parity)Enum.Parse(typeof(Parity), "1");
                sPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), "2");
                IsOpen          = POSUtility.Instance.OpenComPort(ref sPort);
                //sPort.Dispose();
                break;

            case "USB":
                IsOpen = POSUtility.Instance.OpenUSBPort(cboxUSB.Text);
                break;

            case "驱动":
                MessageBox.Show("驱动打印测试与开钱箱相同!");
                break;

            case "网口":
                IsOpen = POSUtility.Instance.OpenNetPort(maskedtboxIP.Text);
                break;
            }
            if (IsOpen)
            {
                try
                {
                    POSUtility.POS_SetMode(0x00);
                    POSUtility.POS_SetRightSpacing(0);
                    POSUtility.POS_SetLineSpacing(80);
                    POSUtility.POS_S_TextOut("【" + Port + "】 --打印测试", 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL);
                    POSUtility.POS_FeedLine();
                    POSUtility.POS_S_TextOut("--------------------------", 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL);
                    POSUtility.POS_FeedLine();
                    POSUtility.POS_S_TextOut("清晰程度-字体大小-打印测试", 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL);
                    POSUtility.POS_FeedLine();
                    POSUtility.POS_S_TextOut("--------------------------", 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL);
                    POSUtility.POS_FeedLine();
                    POSUtility.POS_S_TextOut(System.DateTime.Now.ToString(), 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL);
                    POSUtility.POS_FeedLines(4);
                    POSUtility.POS_Reset();
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.Message, "系统提示");
                }
                //关闭端口
                POSUtility.Instance.ClosePrinterPort();
            }
            else
            {
                if (Port != "驱动" && Port != "并口")
                {
                    MessageBox.Show("端口打开失败,请检查一下端口选择是否正确!", Gattr.AppTitle);
                }
            }
            sPort.Dispose();
        }
Exemplo n.º 3
0
        public static void SendToAPIPrint()
        {
            bool IsOpen = false;

            switch (Gattr.PortType)
            {
            case "并口":
                SendToLTP();
                break;

            case "串口":
                System.IO.Ports.SerialPort sPort = new System.IO.Ports.SerialPort();
                sPort.PortName  = Gattr.PortName;
                sPort.BaudRate  = 9600;
                sPort.DataBits  = 8;
                sPort.StopBits  = (StopBits)Enum.Parse(typeof(StopBits), "1");
                sPort.Parity    = (Parity)Enum.Parse(typeof(Parity), "1");
                sPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), "1");
                IsOpen          = POSUtility.Instance.OpenComPort(ref sPort);
                sPort.Dispose();
                break;

            case "USB":
                IsOpen = POSUtility.Instance.OpenUSBPort(Gattr.PortName);
                break;

            case "驱动":
                Gfunc.SendToPrint();
                //IsOpen = POSUtility.Instance.OpenPrinter(Gattr.PortName);
                break;

            case "网口":
                IsOpen = POSUtility.Instance.OpenNetPort(Gattr.PortName);
                break;
            }
            if (IsOpen)
            {
                if (((_listWinPrtStr != null) && (_listWinPrtStr.Count != 0)))
                {
                    try
                    {
                        //开钱箱
                        IntPtr res = POSUtility.POS_KickOutDrawer(0x00, 100, 100);
                        if ((uint)res != POSUtility.Instance.POS_SUCCESS)
                        {
                            MessageBox.Show("开钱箱失败!指令调用返回值:" + res.ToString(), "系统提示");
                            LoggerHelper.Log("MsmkLogger", "开钱箱失败!指令调用返回值:" + res.ToString(), LogEnum.SysLog);
                        }
                        POSUtility.POS_StartDoc();
                        POSUtility.POS_SetMode(0x00);
                        POSUtility.POS_SetRightSpacing(0);
                        POSUtility.POS_SetLineSpacing(80);
                        foreach (t_pos_printer_out _out in _listWinPrtStr)
                        {
                            POSUtility.POS_FeedLine();
                            POSUtility.POS_S_TextOut(_out.Text, 0, 1, 1, POSUtility.Instance.POS_FONT_TYPE_STANDARD, POSUtility.Instance.POS_FONT_STYLE_NORMAL);
                        }
                        POSUtility.POS_FeedLines(4);
                        POSUtility.POS_Reset();
                        POSUtility.POS_EndDoc();
                        _listWinPrtStr.Clear();
                    }
                    catch (Exception exception)
                    {
                        MessageBox.Show(exception.Message, "系统提示");
                        LoggerHelper.Log("MsmkLogger", "API打印报错:" + exception.Message, LogEnum.SysLog);
                    }
                }
                //关闭端口
                POSUtility.Instance.ClosePrinterPort();
            }
            else
            {
                if (Gattr.PortType != "驱动" && Gattr.PortType != "并口")
                {
                    MessageBox.Show(Gattr.PortType + "端口打印机无效!", Gattr.AppTitle);
                    LoggerHelper.Log("MsmkLogger", Gattr.PortType + "端口打印机无效!", LogEnum.SysLog);
                }
            }
        }