public bool SetLedCfg(int iAddr, CardCfgByJson cfg)
        {
            lock (this)
            {
                try
                {
                    ClearOldReadBuf();
                    bool bError = false;
                    GlareLedSysDefPub.GasCardCfg cardcfg = new GlareLedSysDefPub.GasCardCfg();
                    cardcfg.bDobule       = cfg.bDobule;
                    cardcfg.bShowAppend   = cfg.bShowAppend;
                    cardcfg.iCardDigCount = cfg.iCardDigCount;
                    cardcfg.iCardType     = cfg.iCardType;
                    cardcfg.iFirmVer      = cfg.iFirmVer;
                    cardcfg.iHardVer      = cfg.iHardVer;
                    cardcfg.iID           = cfg.iID;
                    cardcfg.iLight        = cfg.iLight;
                    cardcfg.iScreenCount  = cfg.iScreenCount;

                    byte[] bBuf = GLLedProtocol.MakeCmdLedSetCfg(iAddr, cardcfg);
                    Write(bBuf, 0, bBuf.Length);
                    Thread.Sleep(100);
                    byte[] bRead = Read(out bError);
                    return(GLLedProtocol.AnalyeseRecSetCardCfg(bRead, iAddr));
                }
                catch (System.Exception ex)
                {
                    LogMgr.WriteInfoDefSys("读写异常" + ex.Message);
                    return(false);
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 设置卡的参数
 /// </summary>
 /// <param name="iAddr">卡ID</param>
 /// <param name="objCardCfg">参数</param>
 /// <returns></returns>
 public bool SetCfg(int iAddr, GlareLedSysDefPub.GasCardCfg objCardCfg)
 {
     ClearOldReadBuf();
     byte[] bBuf = GLLedProtocol.MakeCmdLedSetCfg(iAddr, objCardCfg);
     Write(bBuf, 0, bBuf.Length);
     Thread.Sleep(1000);
     byte[] bRead = Read();
     if (bRead == null)
     {
         LogMgr.WriteErrorDefSys("GetCfg RecBuf is Null");
         return(false);
     }
     return(GLLedProtocol.AnalyeseRecSetCardCfg(bRead, iAddr));
 }
Esempio n. 3
0
        /// <summary>
        /// 分析查询设备参数
        /// </summary>
        /// <param name="pBufRec">接收到的字节数组</param>
        /// <param name="iAddrsrc">源地址, 可以为0</param>
        /// <param name="objCfgReaded">设备参数</param>
        /// <returns></returns>
        static public bool AnalyeseRecGetCfg(byte[] pBufRec, int iAddrsrc, ref GlareLedSysDefPub.GasCardCfg objCfgReaded)
        {
            if (pBufRec != null)
            {
                String strRec = BitConverter.ToString(pBufRec);
                //string strInfo = "gprs info " + strGprsInfo;
                LogMgr.WriteInfoDefSys(strRec);
            }
            byte bCmdType = GlareLedSysDefPub.GasCardDef.BT_CmdGetCfg;
            int  iWantLen = GlareLedSysDefPub.GasCardDef.BT_RecBytesLenGetCfg;

            if (pBufRec == null || pBufRec.Length != iWantLen)
            {
                LogMgr.WriteInfoDefSys("想要的长度不对");
                return(false);
            }

            if (pBufRec[0] != GlareLedSysDefPub.GasCardDef.BT_CmdStart &&
                pBufRec[1] != GlareLedSysDefPub.GasCardDef.BT_RecCmdStart &&
                pBufRec[GlareLedSysDefPub.GasCardDef.CmdOffsetOfTypeSection] != bCmdType &&
                pBufRec[pBufRec.Length - 1] != GlareLedSysDefPub.GasCardDef.BT_CmdEnd)
            {
                LogMgr.WriteInfoDefSys("命令码不对");
                return(false);
            }

            if (!IsCheckSumCorrect(pBufRec, pBufRec[pBufRec.Length - 2]))
            {
                LogMgr.WriteInfoDefSys("校验错了");
                return(false);
            }

            int iTmp = 5;

            objCfgReaded.iID           = pBufRec[3];
            objCfgReaded.iHardVer      = pBufRec[iTmp++];
            objCfgReaded.iFirmVer      = pBufRec[iTmp++];
            objCfgReaded.bDobule       = pBufRec[iTmp++] == 1;
            objCfgReaded.iScreenCount  = pBufRec[iTmp++];
            objCfgReaded.iCardDigCount = pBufRec[iTmp++];
            objCfgReaded.bShowAppend   = pBufRec[iTmp++] == 1;
            objCfgReaded.iLight        = pBufRec[iTmp++];


            return(true);
        }
Esempio n. 4
0
        /// <summary>
        /// 设置设备参数
        /// </summary>
        /// <param name="iAddr"></param>
        /// <returns></returns>
        static public byte[] MakeCmdLedSetCfg(int iAddr, GlareLedSysDefPub.GasCardCfg cardCfg)
        {
            IList <byte> lstCmd = new List <byte>();

            lstCmd.Add(GlareLedSysDefPub.GasCardDef.BT_CmdStart);
            lstCmd.Add(GlareLedSysDefPub.GasCardDef.BT_SendCmdStart);
            lstCmd.Add(0);
            lstCmd.Add((byte)iAddr);
            lstCmd.Add(GlareLedSysDefPub.GasCardDef.BT_CmdSetCfg);
            // 内容
            lstCmd.Add((byte)(cardCfg.bDobule ? 1 : 0));
            lstCmd.Add((byte)cardCfg.iScreenCount);
            lstCmd.Add((byte)cardCfg.iCardDigCount);
            lstCmd.Add((byte)(cardCfg.bShowAppend ? 1 : 0));
            lstCmd.Add((byte)cardCfg.iLight);
            lstCmd.Add(0);
            lstCmd.Add(GlareLedSysDefPub.GasCardDef.BT_CmdEnd);
            ReplaceLastByteWithLen(lstCmd);
            ReplaceByteWithCheckSum(lstCmd);
            return(lstCmd.ToArray <byte>());
        }
 public bool GetLedCfg(int iAddr, ref CardCfgByJson cfg)
 {
     lock (this)
     {
         try
         {
             bool bError = false;
             ClearOldReadBuf();
             GlareLedSysDefPub.GasCardCfg cardcfg = new GlareLedSysDefPub.GasCardCfg();
             byte[] bBuf = GLLedProtocol.MakeCmdLedGetCfg(iAddr);
             Write(bBuf, 0, bBuf.Length);
             LogMgr.WriteInfoDefSys("send to dev:" + BitConverter.ToString(bBuf));
             Thread.Sleep(100);
             byte[] bRead = Read(out bError);
             bool   bRet  = GLLedProtocol.AnalyeseRecGetCfg(bRead, iAddr, ref cardcfg);
             if (bRet)
             {
                 cfg.bDobule       = cardcfg.bDobule;
                 cfg.bShowAppend   = cardcfg.bShowAppend;
                 cfg.iCardDigCount = cardcfg.iCardDigCount;
                 cfg.iCardType     = cardcfg.iCardType;
                 cfg.iFirmVer      = cardcfg.iFirmVer;
                 cfg.iHardVer      = cardcfg.iHardVer;
                 cfg.iID           = cardcfg.iID;
                 cfg.iLight        = cardcfg.iLight;
                 cfg.iScreenCount  = cardcfg.iScreenCount;
                 return(true);
             }
             return(false);
         }
         catch (System.Exception ex)
         {
             LogMgr.WriteInfoDefSys("读写异常" + ex.Message);
             return(false);
         }
     }
 }