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); } } }
/// <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)); }
/// <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); }
/// <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); } } }