Пример #1
0
        /// <summary>
        /// 静态构造函数
        /// </summary>
        static ReadWriteIdHandle()
        {
            atSnRead     = new ATReadCmd(ATReadCmd.ReadIdType.SnRead, "AT+CBSN\r\n", "+CBSN:");
            atIccidRead  = new ATReadCmd(ATReadCmd.ReadIdType.IccidRead, "AT+CCID\r\n", "+CCID:");
            atImeiRead   = new ATReadCmd(ATReadCmd.ReadIdType.ImeiRead, "AT+CGSN\r\n", "+CGSN:");
            atEidRead    = new ATReadCmd(ATReadCmd.ReadIdType.EidRead, "AT+CEID\r\n", "+CEID:");
            atVersonRead = new ATReadCmd(ATReadCmd.ReadIdType.VersonRead, "AT+CGMR\r\n", VersonStart);

            atImeiWrite = new ATWriteCmd(ATWriteCmd.WriteIdType.ImeiWrite, "AT+EGMR=1,7,\"", "\"\r\n");
            atSnWrite   = new ATWriteCmd(ATWriteCmd.WriteIdType.SnWrite, "AT+EGMR=1,5,\"", "\"\r\n");
        }
Пример #2
0
        //<summary>
        //静态构造函数
        //</summary>
        static ReadWriteHandle()
        {
            atReset = new ATReadCmd(ATReadCmd.ReadIdType.Reset, "Reset System\r\n", "Get RST command");
            //atIccidRead = new ATReadCmd(ATReadCmd.ReadIdType.IccidRead, "AT+CCID\r\n", "+CCID:");
            atGPIOTest = new ATReadCmd(ATReadCmd.ReadIdType.GPIOTest, "Output Result\r\n", "PIN");
            //atEidRead = new ATReadCmd(ATReadCmd.ReadIdType.EidRead, "AT+CEID\r\n", "+CEID:");


            //atVersonRead = new ATReadCmd(ATReadCmd.ReadIdType.VersonRead, "AT+CGMR\r\n", VersonStart);

            //atImeiWrite = new ATWriteCmd(ATWriteCmd.WriteIdType.ImeiWrite, "AT+EGMR=1,7,\"", "\"\r\n");
            //atSnWrite = new ATWriteCmd(ATWriteCmd.WriteIdType.SnWrite, "AT+EGMR=1,5,\"", "\"\r\n");
        }
Пример #3
0
        /// <summary>
        /// 读取模块ID
        /// </summary>
        /// <param name="atReadCmd"></param>
        /// <returns></returns>
        public string ReadId(ATReadCmd.ReadIdType readIdType)
        {
            string id = null;

            ATReadCmd atReadCmd = null;

            switch (readIdType)
            {
            case ATReadCmd.ReadIdType.SnRead:
                atReadCmd = atSnRead;
                break;

            case ATReadCmd.ReadIdType.ImeiRead:
                atReadCmd = atImeiRead;
                break;

            case ATReadCmd.ReadIdType.EidRead:
                atReadCmd = atEidRead;
                break;

            case ATReadCmd.ReadIdType.IccidRead:
                atReadCmd = atIccidRead;
                break;

            case ATReadCmd.ReadIdType.VersonRead:
                atReadCmd = atVersonRead;
                break;

            default:
                throw new NullReferenceException("ATReadCmd.ReadIdType引用异常");
            }

            //发命令获取数据
            string readCmd = atReadCmd.Cmd;         //读取指令

            if (ATCmdCommunication(readCmd) != 0)
            {
                return(null);
            }

            //借助关键字符串提取出相应的ID
            string idKeySubstr = atReadCmd.IdKeySubstr.ToUpper();      //提取的关键字符串

            if (readIdType == ATReadCmd.ReadIdType.VersonRead)
            {
                #region AT+CGMR\r\n后面的
                //int positon;
                //if ((positon = recive.ToUpper().LastIndexOf(idKeySubstr)) >= 0)
                //{
                //    id = recive.Substring(positon + idKeySubstr.Length);
                //    //id = recive.Substring(positon);

                //    string[] sp = { "\r\n" };
                //    id = id.Split(sp, StringSplitOptions.RemoveEmptyEntries)[0];
                //}
                #endregion

                #region 以CMIOT为关键字
                string[] spit = { "\r\n" };
                string[] line = recive.Split(spit, StringSplitOptions.RemoveEmptyEntries);
                int      positon;
                for (int i = 0; i < line.Length; i++)
                {
                    if ((positon = line[i].IndexOf(idKeySubstr)) >= 0)
                    {
                        id = line[i].Substring(positon);
                        //id = System.Text.RegularExpressions.Regex.Replace(temp, @"[^0-9A-Z]", "");
                    }
                }
                #endregion
            }
            else
            {
                string[] spit = { "\r\n" };
                string[] line = recive.Split(spit, StringSplitOptions.RemoveEmptyEntries);
                int      pos;

                for (int i = 0; i < line.Length; i++)
                {
                    if ((pos = line[i].IndexOf(idKeySubstr)) >= 0)
                    {
                        string temp = line[i].Substring(pos + idKeySubstr.Length);
                        id = System.Text.RegularExpressions.Regex.Replace(temp, @"[^0-9A-Z]", "");
                    }
                }
            }

            return(id);
        }