Esempio n. 1
0
        /// <summary>
        /// 通过字符串构造发送价格内容
        /// </summary>
        /// <param name="lstVals"></param>
        /// <returns></returns>
        static public IList <GlareLedSysDefPub.CardGasValEachNumAByte> MakeOilValBytesByString(IList <string> lstVals)
        {
            IList <GlareLedSysDefPub.CardGasValEachNumAByte> lstOil = new List <GlareLedSysDefPub.CardGasValEachNumAByte>();

            foreach (string aStr in lstVals)
            {
                string strTmp = aStr;
                strTmp.Replace(".", "");

                while (strTmp.Length < 6)
                {
                    strTmp += "0";
                }

                GlareLedSysDefPub.CardGasValEachNumAByte aNewOilVal = new GlareLedSysDefPub.CardGasValEachNumAByte();
                byte[] bArr = new byte[6];
                for (int i = 0; i < 6; i++)
                {
                    byte   bTmp    = 0;
                    string strABit = strTmp.Substring(i, 1);
                    byte.TryParse(strABit, out bTmp);
                    bArr[i] = bTmp;
                }
                aNewOilVal.AddAGasValOfBCDVal(bArr);

                lstOil.Add(aNewOilVal);
            }

            return(lstOil);
        }
Esempio n. 2
0
        /// <summary>
        /// 分析读取的价格内容是否成功
        /// </summary>
        /// <param name="pBufRec"></param>
        /// <param name="iAddr"></param>
        /// <param name="lstOilVals"></param>
        /// <returns></returns>
        static public bool AnalyeseRecGetOilVal(byte[] pBufRec, int iAddr, ref List <GlareLedSysDefPub.CardGasValEachNumAByte> lstOilVals)
        {
            try
            {
                byte bCmdType    = GlareLedSysDefPub.GasCardDef.BT_CmdGetGasVal;
                int  iRecWantLen = GlareLedSysDefPub.GasCardDef.BT_RecBytesLenGetGasVal;

                if (pBufRec.Length != iRecWantLen)
                {
                    string str = BitConverter.ToString(pBufRec);
                    LogMgr.WriteInfoDefSys("AnalyeseRecGetOilVal Length error:" + str);
                    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("AnalyeseRecGetOilVal Code Error");
                    return(false);
                }

                if (!IsCheckSumCorrect(pBufRec, pBufRec[pBufRec.Length - 2]))
                {
                    LogMgr.WriteInfoDefSys("Crc Error");
                    return(false);
                }



                while (lstOilVals.Count < GlareLedSysDefPub.GasCardDef.MaxScreen)
                {
                    GlareLedSysDefPub.CardGasValEachNumAByte aItem = new GlareLedSysDefPub.CardGasValEachNumAByte();
                    lstOilVals.Add(aItem);
                }

                int    iTmp          = 5;
                byte[] bArrScreenVal = new byte[6];
                for (int i = 0; i < GlareLedSysDefPub.GasCardDef.MaxScreen; i++)
                {
                    byte bValBcd1 = pBufRec[iTmp++];
                    byte bValBcd2 = pBufRec[iTmp++];
                    byte bValBcd3 = pBufRec[iTmp++];
                    bArrScreenVal[0]     = GetHeightLowByteByBCDVal(bValBcd1, true);
                    bArrScreenVal[0 + 1] = GetHeightLowByteByBCDVal(bValBcd1, false);
                    bArrScreenVal[0 + 2] = GetHeightLowByteByBCDVal(bValBcd2, true);
                    bArrScreenVal[0 + 3] = GetHeightLowByteByBCDVal(bValBcd2, false);
                    bArrScreenVal[0 + 4] = GetHeightLowByteByBCDVal(bValBcd3, true);
                    bArrScreenVal[0 + 5] = GetHeightLowByteByBCDVal(bValBcd3, false);

                    lstOilVals[i].lstArr.Add(bArrScreenVal[0]);
                    lstOilVals[i].lstArr.Add(bArrScreenVal[1]);
                    lstOilVals[i].lstArr.Add(bArrScreenVal[2]);
                    lstOilVals[i].lstArr.Add(bArrScreenVal[3]);
                    lstOilVals[i].lstArr.Add(bArrScreenVal[4]);
                    lstOilVals[i].lstArr.Add(bArrScreenVal[5]);
                }

                return(true);
            }
            catch (System.Exception ex)
            {
                LogMgr.WriteInfoDefSys(ex.Message);
                return(false);
            }
        }