Exemplo n.º 1
0
        private void buttonPrienterStat_Click(object sender, EventArgs e)
        {
            string        reStr = "";
            PrinterReStat stat  = new PrinterReStat();
            bool          re    = printer.PrinterStat(ref stat, ref reStr);

            AddLog(reStr);
        }
Exemplo n.º 2
0
 public bool PrinterStat(ref PrinterReStat stat, ref string reStr)
 {
     if (!isConnected)
     {
         reStr = "贴标机未连接";
         return(false);
     }
     try
     {
         string sndStr = "stat\n";
         byte[] sndBuf = System.Text.Encoding.GetEncoding(936).GetBytes(sndStr);
         if (!SendBuf(sndBuf, ref reStr))
         {
             reStr = "发送:" + sndStr + "接收:" + reStr;
             return(false);
         }
         //返回信息,应答超时,001 错误信息,000 OK
         stat = new PrinterReStat();
         bool re = false;
         if (reStr.Length > 3)
         {
             if (reStr.Substring(0, 3) == "000")
             {
                 re = true;
             }
         }
         else
         {
             re = false;
         }
         reStr = "发送:" + sndStr + " 接收:" + reStr;
         return(re);
     }
     catch (Exception ex)
     {
         reStr = ex.ToString();
         return(false);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// 作者:np
        /// 时间:2014年6月2日
        /// 内容:TCP读数据的回调函数
        /// </summary>
        /// <param name="ar"></param>
        private void TCPReadCallBack(IAsyncResult ar)
        {
            try
            {
                StateObject state = (StateObject)ar.AsyncState;
                if ((state.client == null) || (!state.client.Connected))  //主动断开时
                {
                    this.isConnected = false;
                    return;
                }
                int           numberOfBytesRead;
                NetworkStream netStream = state.client.GetStream();
                numberOfBytesRead     = netStream.EndRead(ar);
                state.totalBytesRead += numberOfBytesRead;

                if (numberOfBytesRead > 0)
                {
                    byte[] recBytes = new byte[numberOfBytesRead];
                    Array.Copy(state.buffer, 0, recBytes, 0, numberOfBytesRead);

                    for (int i = 0; i < numberOfBytesRead; i++)
                    {
                        // if(recBytes[i] == 0x0D)
                        if (recBytes[i] == 0x0A)
                        {
                            recvStr = System.Text.Encoding.GetEncoding(936).GetString(saveBuf.ToArray()).Trim();
                            // recvStr = System.Text.Encoding.UTF8.GetString(saveBuf.ToArray()).Trim();
                            string[] strArry = recvStr.Split(new string[] { ",", " ", ":", "-", "|" }, StringSplitOptions.RemoveEmptyEntries);

                            if (strArry.Count() > 1)
                            {
                                reStat         = new PrinterReStat();
                                reStat.errCode = strArry[0];
                                reStat.errInfo = strArry[1];
                            }

                            break;
                        }
                        else
                        {
                            this.saveBuf.Add(recBytes[i]);
                        }
                    }

                    netStream.BeginRead(state.buffer, 0, StateObject.BufferSize, new AsyncCallback(TCPReadCallBack), state);
                }
                else
                {
                    //被动断开时
                    netStream.Close();
                    state.client.Close();
                    netStream        = null;
                    state            = null;
                    this.isConnected = false;
                }
            }
            catch (System.Exception ex)
            {
                isConnected = false;
            }
        }