示例#1
0
        public void Run(IProperties properties, GlobalDic <string, object> globalDic)//virtual
        {
            config = properties as ReadMapProperties;
            ILog log = globalDic[typeof(ILog).ToString()] as ILog;

            //int ret = -1;
            string mapFileString = "";

            try
            {
                mapFileString = Read(config.MapFilePath);
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("读取MAP文件失败,异常:{0}", ex.Message));
            }

            log.Info(string.Format("读取MAP文件成功:\r\n{0}", mapFileString));
            //更新MAP内存中的MAC地址
            string[] splits             = { "\r\n" };
            string[] mapFileStringLines = mapFileString.Split(splits, StringSplitOptions.RemoveEmptyEntries);

            //IMES获取的MAC***************
            configGv = globalDic[typeof(GlobalVaribles).ToString()] as GlobalVaribles;
            string macFromImes = configGv.Get("MAC");

            //更新MAP
            //byte[] bytesMac = strToToHexByte(macFromImes);
            //byte[] bytesReverseMac = bytesConvert(bytesMac);
            //string stringReverseMac = byteToHexStr(bytesReverseMac);
            //string reverseMacAddSpace = AddSpaceEachTwoBtye(stringReverseMac);


            string reverseMacAddSpace = AddSpaceEachTwoBtye(macFromImes);

            string mapFileStringMacUpdate = "";

            for (int i = 0; i < mapFileStringLines.Length; i++)
            {
                if (i == 17)
                {
                    //前面固定部分+反转并添加空格的MAC
                    mapFileStringLines[i] = mapFileStringLines[i].Substring(0, 25) + reverseMacAddSpace;
                }
                mapFileStringMacUpdate += mapFileStringLines[i] + "\r\n";
            }

            //存为byte数组应该会好些,这样可以定位地址,当MAC的偏移地址发生变化时,只需改地址值
            log.Info(string.Format("更新MAP文件中的MAC成功:\r\n{0}", mapFileStringMacUpdate));
            GlobalVaribles configGv1 = globalDic.Get <GlobalVaribles>();

            configGv1.Add("MapFileStringMacUpdate", mapFileStringMacUpdate);
            //globalDic.Add(typeof(OpenPhoneProperties).ToString(), config);
        }
示例#2
0
        public void Run(IProperties properties, GlobalDic <string, object> globalDic)//virtual
        {
            config = properties as ReadMapProperties;
            ILog log = globalDic[typeof(ILog).ToString()] as ILog;

            configGv = globalDic[typeof(GlobalVaribles).ToString()] as GlobalVaribles;
            //int ret = -1;
            string binFileString = "";
            //查询MAC对应的bin文件
            //第一种方法
            string mac = configGv.Get(GlobalVaribles.MAC);

            try
            {
                var files = Directory.GetFiles(config.BinFolderPath, "*.bin");
                foreach (var file in files)
                {
                    if (file.Contains(mac))
                    {
                        binFileString = ReadBinery(file);
                        break;
                    }
                }
                configGv.Add("BinFileString", binFileString);
                if (string.IsNullOrEmpty(binFileString))
                {
                    throw new Exception(string.Format("读取License文件失败,未读到该MAC:{0}的binFile", mac));
                }

                #region 从服务器download文件下来 http://10.42.1.4:9999/midea_hi3861_license/847C9B7E6287.bin
                //HttpTools.Download("http://10.42.1.4:9999/midea_hi3861_license/847C9B7E6.bin", "E:/testDownLoadBin/847C9B7E6287.bin");

                #endregion
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("读取License文件失败,异常:{0}", ex.Message));
            }
            log.Info(string.Format("读取License文件成功:\r\n{0}", binFileString));

            //try
            //{
            //    binFileString = Read(config.MapFilePath);
            //}
            //catch (Exception ex)
            //{

            //    throw new Exception(string.Format("读取License文件失败,异常:{0}", ex.Message));
            //}

            //log.Info(string.Format("读取License文件成功:\r\n{0}", binFileString));
            ////更新MAP内存中的MAC地址
            //string[] splits = { "\r\n" };
            //string[] mapFileStringLines = mapFileString.Split(splits, StringSplitOptions.RemoveEmptyEntries);

            ////IMES获取的MAC***************
            //configGv = globalDic[typeof(GlobalVaribles).ToString()] as GlobalVaribles;
            //string macFromImes = configGv.Get("MAC");
            //string reverseMacAddSpace = AddSpaceEachTwoBtye(macFromImes);
            //string mapFileStringMacUpdate = "";
            //for (int i = 0; i < mapFileStringLines.Length; i++)
            //{
            //    if (i == 17)
            //    {
            //        //前面固定部分+反转并添加空格的MAC
            //        mapFileStringLines[i] = mapFileStringLines[i].Substring(0, 25) + reverseMacAddSpace;
            //    }
            //    mapFileStringMacUpdate += mapFileStringLines[i] + "\r\n";
            //}

            ////存为byte数组应该会好些,这样可以定位地址,当MAC的偏移地址发生变化时,只需改地址值
            //log.Info(string.Format("更新MAP文件中的MAC成功:\r\n{0}", mapFileStringMacUpdate));
            //GlobalVaribles configGv1 = globalDic.Get<GlobalVaribles>();
            //configGv1.Add("MapFileStringMacUpdate", mapFileStringMacUpdate);
        }