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