Beispiel #1
0
        private void ProcessWriteTag(UHFReader.PR9200Msg msgTran)
        {
            string strCmd       = "写标签";
            string strErrorCode = string.Empty;

            if (msgTran.AryData.Length == 1)
            {
                strErrorCode = CCommondMethod.FormatErrorCode(msgTran.AryData[0]);
                string strLog = strCmd + "失败,失败原因: " + strErrorCode;

                WriteLog(lrtxtLog, strLog, 1);

                //tbx_SerialWrite.Enabled = true;
            }
            else
            {
                int nLen    = msgTran.AryData.Length;
                int nEpcLen = Convert.ToInt32(msgTran.AryData[2]) - 4;

                if (msgTran.AryData[nLen - 3] != 0x10)
                {
                    strErrorCode = CCommondMethod.FormatErrorCode(msgTran.AryData[nLen - 3]);
                    string strLog = strCmd + "失败,失败原因: " + strErrorCode;

                    WriteLog(lrtxtLog, strLog, 1);

                    EnableControl(1);
                    //tbx_SerialWrite.Enabled = true;
                    return;
                }

                string strPC   = CCommondMethod.ByteArrayToString(msgTran.AryData, 3, 2);
                string strEPC  = CCommondMethod.ByteArrayToString(msgTran.AryData, 5, nEpcLen);
                string strCRC  = CCommondMethod.ByteArrayToString(msgTran.AryData, 5 + nEpcLen, 2);
                string strData = string.Empty;

                byte   byTemp   = msgTran.AryData[nLen - 2];
                byte   byAntId  = (byte)((byTemp & 0x03) + 1);
                string strAntId = byAntId.ToString();

                string strReadCount = msgTran.AryData[nLen - 1].ToString();



                WriteLog(lrtxtLog, strCmd, 0);

                //tbx_SerialWrite.Enabled = true;
                EnableControl(1);

                paintBackgroundColor(statusType.PASS);
            }
        }
Beispiel #2
0
        private void ProcessReadTag(UHFReader.PR9200Msg msgTran)
        {
            string strCmd       = "读标签";
            string strErrorCode = string.Empty;

            if (msgTran.AryData.Length == 1)
            {
                strErrorCode = CCommondMethod.FormatErrorCode(msgTran.AryData[0]);
                string strLog = strCmd + "失败,失败原因: " + strErrorCode;

                //WriteLog(lrtxtLog, strLog, 1);
            }
            else
            {
                int nLen     = msgTran.AryData.Length;
                int nDataLen = Convert.ToInt32(msgTran.AryData[nLen - 3]);         //lenght of the data we specified
                int nEpcLen  = Convert.ToInt32(msgTran.AryData[2]) - nDataLen - 4; //totally data length minus specified data length minus PC&CRC(4 bytes)

                string strPC   = CCommondMethod.ByteArrayToString(msgTran.AryData, 3, 2);
                string strEPC  = CCommondMethod.ByteArrayToString(msgTran.AryData, 5, nEpcLen);
                string strCRC  = CCommondMethod.ByteArrayToString(msgTran.AryData, 5 + nEpcLen, 2);
                string strData = CCommondMethod.ByteArrayToString(msgTran.AryData, 7 + nEpcLen, nDataLen);//the specified data

                byte   byTemp   = msgTran.AryData[nLen - 2];
                byte   byAntId  = (byte)((byTemp & 0x03) + 1);
                string strAntId = byAntId.ToString();

                string strReadCount = msgTran.AryData[nLen - 1].ToString();

                if (action_Queue.Count > 0)
                {
                    string sUniqueTID = "";
                    bool   b_tagValid = true;

                    switch (action_Queue.Peek())
                    {
                    case ActionType.ReadTIDBankWhenWrite:
                        #region MyRegion
                        m_sTIDType = strData.Substring(0, 11);
                        sUniqueTID = strData.Substring(12);

                        if (m_sTIDType.Equals(UHFTIDTypes.Alien_Higgs3))
                        {
                            WriteLog(lrtxtLog, "this is alien higgs 3 chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4D))
                        {
                            WriteLog(lrtxtLog, "this is monza 4d chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4E))
                        {
                            WriteLog(lrtxtLog, "this is monza 4e chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4i))
                        {
                            WriteLog(lrtxtLog, "this is monza 4i chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4QT))
                        {
                            WriteLog(lrtxtLog, "this is monza 4qtchip", 1);
                        }
                        else
                        {
                            WriteLog(lrtxtLog, "this tag is not valid", 1);
                            b_tagValid = false;
                        }

                        if (b_tagValid)
                        {
                            m_sCurrentUniqueTID = sUniqueTID;

                            GetTIDCallback();
                        }
                        else
                        {
                            //tbx_SerialWrite.Enabled = true; EnableControl(1);
                            EnableControl(1);
                        }
                        #endregion
                        break;

                    case ActionType.ReadEPC:
                        WriteLog(lrtxtLog, strData, 0);
                        break;

                    case ActionType.ReadTIDBankWhenRead:
                        #region MyRegion
                        m_sTIDType = strData.Substring(0, 11);
                        sUniqueTID = strData.Substring(12);

                        if (m_sTIDType.Equals(UHFTIDTypes.Alien_Higgs3))
                        {
                            m_userMemorySizeInWord = UHFUserMemorySizeInWord.A_9662;
                            WriteLog(lrtxtLog, "this is alien higgs 3 chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4D))
                        {
                            m_userMemorySizeInWord = UHFUserMemorySizeInWord.Monza_4D;
                            WriteLog(lrtxtLog, "this is monza 4d chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4E))
                        {
                            m_userMemorySizeInWord = UHFUserMemorySizeInWord.Monza_4E;
                            WriteLog(lrtxtLog, "this is monza 4e chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4i))
                        {
                            m_userMemorySizeInWord = UHFUserMemorySizeInWord.Monza_4i;
                            WriteLog(lrtxtLog, "this is monza 4i chip", 1);
                        }
                        else if (m_sTIDType.Equals(UHFTIDTypes.Monza_4QT))
                        {
                            m_userMemorySizeInWord = UHFUserMemorySizeInWord.Monza_4QT;
                            WriteLog(lrtxtLog, "this is monza 4qtchip", 1);
                        }
                        else
                        {
                            m_userMemorySizeInWord = 0x00;
                            WriteLog(lrtxtLog, "this tag is not valid", 1);
                            b_tagValid = false;
                        }

                        if (b_tagValid)
                        {
                            m_sCurrentUniqueTID = sUniqueTID;

                            ReadUserBank();
                        }
                        else
                        {
                            //tbx_readSerial.Enabled = true;
                            EnableControl(2);
                        }
                        #endregion
                        break;

                    case ActionType.ReadUserBank:
                        byte[] userdata = new byte[nDataLen];
                        msgTran.AryData.CopyTo(userdata, 7 + nEpcLen);
                        UserBankDataInterperater(userdata);
                        break;

                    default:
                        break;
                    }

                    action_Queue.Dequeue();
                }
            }
        }