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