//using System.Windows; //using Newtonsoft.Json; //using System; //using System.Collections.Generic; //using System.Globalization; //using System.IO; //using System.IO.Ports; //using System.Linq; //using System.Management; //using System.Text; //using System.Text.RegularExpressions; //using System.Threading.Tasks; //namespace SetTools.Tools //{ // class Global // { // //api接口文档网址 // public static string apiDocumentUrl = "https://github.com/chenxuuu/llcom/blob/master/LuaApi.md"; // //主窗口是否被关闭? // public static bool isMainWindowsClosed = false; // //给全局使用的设置参数项 // public static Serial.Settings setting; // public static Serial.Uart uart = new Serial.Uart(); // /// // /// 软件打开后,所有东西的初始化流程 // /// // public static void Initial() // { // //C:\Users\chenx\AppData\Local\Temp\7zO05433053\user_script_run // if(AppDomain.CurrentDomain.BaseDirectory.IndexOf(@"C:\Users\") == 0 && // AppDomain.CurrentDomain.BaseDirectory.Contains(@"\AppData\Local\Temp\")) // { // System.Windows.Forms.MessageBox.Show("请勿在压缩包内直接打开本软件。"); // Environment.Exit(1); // } // try // { // if (!Directory.Exists("core_script")) // { // Directory.CreateDirectory("core_script"); // } // CreateFile("DefaultFiles/core_script/head.lua", "core_script/head.lua", false); // CreateFile("DefaultFiles/core_script/JSON.lua", "core_script/JSON.lua", false); // CreateFile("DefaultFiles/core_script/log.lua", "core_script/log.lua", false); // CreateFile("DefaultFiles/core_script/once.lua", "core_script/once.lua", false); // CreateFile("DefaultFiles/core_script/strings.lua", "core_script/strings.lua", false); // CreateFile("DefaultFiles/core_script/sys.lua", "core_script/sys.lua", false); // if (!Directory.Exists("logs")) // Directory.CreateDirectory("logs"); // if (!Directory.Exists("user_script_run")) // { // Directory.CreateDirectory("user_script_run"); // CreateFile("DefaultFiles/user_script_run/AT控制TCP连接-快发模式.lua", "user_script_run/AT控制TCP连接-快发模式.lua"); // CreateFile("DefaultFiles/user_script_run/AT控制TCP连接-慢发模式.lua", "user_script_run/AT控制TCP连接-慢发模式.lua"); // CreateFile("DefaultFiles/user_script_run/example.lua", "user_script_run/example.lua"); // CreateFile("DefaultFiles/user_script_run/循环发送快捷发送区数据.lua", "user_script_run/循环发送快捷发送区数据.lua"); // } // if (!Directory.Exists("user_script_run/requires")) // Directory.CreateDirectory("user_script_run/requires"); // if (!Directory.Exists("user_script_run/logs")) // Directory.CreateDirectory("user_script_run/logs"); // if (!Directory.Exists("user_script_send_convert")) // { // Directory.CreateDirectory("user_script_send_convert"); // CreateFile("DefaultFiles/user_script_send_convert/16进制数据.lua", "user_script_send_convert/16进制数据.lua"); // CreateFile("DefaultFiles/user_script_send_convert/GPS NMEA.lua", "user_script_send_convert/GPS NMEA.lua"); // CreateFile("DefaultFiles/user_script_send_convert/加上换行回车.lua", "user_script_send_convert/加上换行回车.lua"); // CreateFile("DefaultFiles/user_script_send_convert/解析换行回车的转义字符.lua", "user_script_send_convert/解析换行回车的转义字符.lua"); // CreateFile("DefaultFiles/user_script_send_convert/默认.lua", "user_script_send_convert/默认.lua"); // } // CreateFile("DefaultFiles/LICENSE", "LICENSE", false); // CreateFile("DefaultFiles/反馈网址.txt", "反馈网址.txt", false); // } // catch(Exception e) // { // System.Windows.Forms.MessageBox.Show("生成文件结构失败,请确保本软件处于有读写权限的目录下再打开。\r\n错误信息:"+e.Message); // Environment.Exit(1); // } // //配置文件 // if(File.Exists("settings.json")) // { // setting = JsonConvert.DeserializeObject(File.ReadAllText("settings.json")); // setting.SentCount = 0; // setting.ReceivedCount = 0; // } // else // { // ////导入之前的配置文件 // //if (Properties.Settings.Default.UpgradeRequired) // //{ // // Properties.Settings.Default.Upgrade(); // // //Properties.Settings.Default.UpgradeRequired = false; // // //Properties.Settings.Default.Save(); // //} // //setting = new Serial.Settings(); // //if(Properties.Settings.Default.quickData != "done" && // // Properties.Settings.Default.dataToSend != // // "uart dataplVIzj85gvLDrDqtVxftzTb78")//不是第一次用 // //{ // // setting.dataToSend = Properties.Settings.Default.dataToSend; // // setting.baudRate = Properties.Settings.Default.BaudRate; // // setting.autoReconnect = Properties.Settings.Default.autoReconnect; // // setting.autoSaveLog = Properties.Settings.Default.autoSaveLog; // // setting.showHex = Properties.Settings.Default.showHex; // // setting.parity = Properties.Settings.Default.parity; // // setting.timeout = Properties.Settings.Default.timeout; // // setting.dataBits = Properties.Settings.Default.dataBits; // // setting.stopBit = Properties.Settings.Default.stopBit; // // setting.sendScript = Properties.Settings.Default.sendScript; // // setting.runScript = Properties.Settings.Default.runScript; // // setting.topmost = Properties.Settings.Default.topmost; // // setting.quickData = Properties.Settings.Default.quickData; // // setting.bitDelay = Properties.Settings.Default.bitDelay; // // setting.autoUpdate = Properties.Settings.Default.autoUpdate; // // setting.maxLength = Properties.Settings.Default.maxLength; // // Properties.Settings.Default.quickData = "done"; // //} // } // setting.UpdateQuickSend(); // uart.serial.BaudRate = setting.baudRate; // uart.serial.Parity = (Parity)setting.parity; // uart.serial.DataBits = setting.dataBits; // uart.serial.StopBits = (StopBits)setting.stopBit; // //uart.UartDataRecived += Uart_UartDataRecived; // //uart.UartDataSent += Uart_UartDataSent; // } // ///// // ///// 已发送记录到日志 // ///// // ///// // ///// // //private static void Uart_UartDataSent(object sender, EventArgs e) // //{ // // Logger.AddUartLog($"[INFO]==>{Byte2String((byte[])sender)}"); // // Logger.AddUartLog($"[DEBUG][HEX]\"{Byte2Hex((byte[])sender, " ")}\""); // //} // ///// // ///// 收到的数据记录到日志 // ///// // ///// // ///// // //private static void Uart_UartDataRecived(object sender, EventArgs e) // //{ // // Logger.AddUartLog($"[INFO]<=={Byte2String((byte[])sender)}"); // // Logger.AddUartLog($"[DEBUG][HEX]\"{Byte2Hex((byte[])sender, " ")}\""); // //} // //public static Encoding GetEncoding() => Encoding.GetEncoding(setting.encoding); // ///// // ///// 字符串转hex值 // ///// // ///// 字符串 // ///// 间隔符号 // ///// 结果 // //public static string String2Hex(string str, string space) // //{ // // return BitConverter.ToString(GetEncoding().GetBytes(str)).Replace("-", space); // //} // ///// // ///// hex值转字符串 // ///// // ///// hex值 // ///// 原始字符串 // //public static string Hex2String(string mHex) // //{ // // mHex = Regex.Replace(mHex, "[^0-9A-Fa-f]", ""); // // if (mHex.Length % 2 != 0) // // mHex = mHex.Remove(mHex.Length - 1, 1); // // if (mHex.Length <= 0) return ""; // // byte[] vBytes = new byte[mHex.Length / 2]; // // for (int i = 0; i < mHex.Length; i += 2) // // if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2])) // // vBytes[i / 2] = 0; // // return GetEncoding().GetString(vBytes); // //} // ///// // ///// byte转string // ///// // ///// // ///// // //public static string Byte2String(byte[] vBytes) // //{ // // var br = from e in vBytes // // where e != 0 // // select e; // // return GetEncoding().GetString(br.ToArray()); // //} // ///// // ///// hex转byte // ///// // ///// hex值 // ///// 原始字符串 // //public static byte[] Hex2Byte(string mHex) // //{ // // mHex = Regex.Replace(mHex, "[^0-9A-Fa-f]", ""); // // if (mHex.Length % 2 != 0) // // mHex = mHex.Remove(mHex.Length - 1, 1); // // if (mHex.Length <= 0) return new byte[0]; // // byte[] vBytes = new byte[mHex.Length / 2]; // // for (int i = 0; i < mHex.Length; i += 2) // // if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, out vBytes[i / 2])) // // vBytes[i / 2] = 0; // // return vBytes; // //} // //public static string Byte2Hex(byte[] d, string s = "") // //{ // // return BitConverter.ToString(d).Replace("-", s); // //} // /// // /// 导入SSCOM配置文件数据 // /// // /// // /// // public static List ImportFromSSCOM(string path) // { // var lines = File.ReadAllLines(path, Encoding.GetEncoding("GB2312")); // var r = new List(); // Regex title = new Regex(@"N1\d\d=\d*,"); // for (int i = 0; i < lines.Length; i++) // { // try // { // var temp = new Serial.ToSendData(); // //Console.WriteLine(lines[i]); // if (title.IsMatch(lines[i]))//匹配上了 // { // var strs = lines[i].Split(",".ToCharArray()[0]); // temp.commit = strs[1].Replace(((char)2).ToString(), ","); // if (string.IsNullOrWhiteSpace(temp.commit)) // temp.commit = "发送"; // //Console.WriteLine(temp.commit); // int dot = lines[i + 1].IndexOf(","); // temp.hex = lines[i + 1].Substring(dot - 1, 1) == "H"; // //Console.WriteLine(strs[0].Substring(strs[0].Length - 1)); // string text = lines[i + 1].Substring(dot + 1); // if (!string.IsNullOrWhiteSpace(text)) // { // temp.text = text.Replace(((char)2).ToString(), ","); // r.Add(temp); // } // } // } // catch // { // //先不处理 // } // } // return r; // } // /// // /// 读取软件资源文件内容 // /// // /// 路径 // /// 内容字节数组 // public static byte[] GetAssetsFileContent(string path) // { // byte[] f = {0}; // Uri uri = new Uri(path, UriKind.Relative); // //var source = System.Windows.Application.GetResourceStream(uri).Stream; // //byte[] f = new byte[source.Length]; // //source.Read(f, 0, (int)source.Length); // return f; // } // /// // /// 取出文件 // /// // /// 软件内部的路径 // /// 需要释放到的路径 // /// 是否覆盖 // public static void CreateFile(string insidePath, string outPath, bool d = true) // { // if(!File.Exists(outPath) || d) // File.WriteAllBytes(outPath, GetAssetsFileContent(insidePath)); // } // /// // /// 更换语言文件 // /// // /// // public static void LoadLanguageFile(string languagefileName) // { // //try // //{ // // System.Windows.Forms.Application.Current.Resources.MergedDictionaries[0] = new System.Windows.ResourceDictionary() // // { // // Source = new Uri($"pack://application:,,,/languages/{languagefileName}.xaml", UriKind.RelativeOrAbsolute) // // }; // //} // //catch // //{ // // System.Windows.Application.Current.Resources.MergedDictionaries[0] = new System.Windows.ResourceDictionary() // // { // // Source = new Uri("pack://application:,,,/languages/en-US.xaml", UriKind.RelativeOrAbsolute) // // }; // //} // } // /// // /// 获取时间戳 // /// // /// // public static uint GetTimeStamp() // { // TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0); // return Convert.ToUInt32(ts.TotalSeconds); // } // public static byte[] StringToByte(string InString) // { // string[] ByteStrings; // ByteStrings = InString.Split(" ".ToCharArray()); // byte[] ByteOut; // ByteOut = new byte[ByteStrings.Length]; // for (int i = 0; i < ByteStrings.Length; i++) // { // ByteOut[i] = Convert.ToByte(ByteStrings[i], 16); // } // return ByteOut; // } // public static byte[] StringToHexBytes(string InString)//加空格 // { // string r = Regex.Replace(InString, @"(?<=[0-9A-F]{2})[0-9A-F]{2}", " $0");//加空格 // return StringToByte(r); // } // public static string ByteToString(byte[] InBytes) // { // string StringOut = ""; // foreach (byte InByte in InBytes) // { // StringOut = StringOut + String.Format("{0:X2} ", InByte); // } // return StringOut; // } // public static string ToHexString(byte[] bytes) // 0xae00cf => "AE00CF " // { // string hexString = string.Empty; // if (bytes != null) // { // StringBuilder strB = new StringBuilder(); // for (int i = 0; i < bytes.Length; i++) // { // strB.Append(bytes[i].ToString("X2")); // } // hexString = strB.ToString(); // } // return hexString; // } // } //}