|
@@ -1,6 +1,7 @@
|
|
|
using System;
|
|
|
using System.Collections;
|
|
|
using System.Collections.Generic;
|
|
|
+using System.Diagnostics;
|
|
|
using System.IO;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using System.Security.Cryptography.X509Certificates;
|
|
@@ -122,1350 +123,906 @@ namespace ConsoleApp2
|
|
|
|
|
|
static void Main(string[] args)
|
|
|
{
|
|
|
- Console.WriteLine("欢迎使用 MOTINOVA E-Bike 驱动系统参数生成软件 V2.0.1 20240228");
|
|
|
+ Console.WriteLine("欢迎使用 MOTINOVA E-Bike 驱动系统(Migic & Hub)参数生成软件 V2.1.0 20240313\r\n");
|
|
|
//账户登录
|
|
|
- Console.WriteLine("请输入使用密码:");
|
|
|
- if (Console.ReadLine() != "123456")
|
|
|
- {
|
|
|
- Console.WriteLine("密码错误!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
- }
|
|
|
+ //Console.WriteLine("请输入使用密码:");
|
|
|
+ //if (Console.ReadLine() != "123456")
|
|
|
+ //{
|
|
|
+ // Console.WriteLine("密码错误!");
|
|
|
+ // Console.ReadKey();
|
|
|
+ // return;
|
|
|
+ //}
|
|
|
//选择电机类型
|
|
|
- Console.WriteLine("请输入电机类型:");
|
|
|
- Console.WriteLine("F1:小牙盘 F2:大牙盘/轮毂 F3:通用指令");
|
|
|
- ConsoleKey GetKey = Console.ReadKey().Key;
|
|
|
- if (GetKey == ConsoleKey.F1) //小牙盘
|
|
|
- {
|
|
|
- FuncionType = 1;
|
|
|
- }
|
|
|
- else if (GetKey == ConsoleKey.F2) //大牙盘
|
|
|
- {
|
|
|
- FuncionType = 2;
|
|
|
- }
|
|
|
- else if (GetKey == ConsoleKey.F3) //通用指令
|
|
|
- {
|
|
|
- FuncionType = 3;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- Console.WriteLine("请正确选择电机类型!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
- }
|
|
|
+ //Console.WriteLine("请输入电机类型:");
|
|
|
+ //Console.WriteLine("F1:小牙盘 F2:大牙盘/轮毂 F3:通用指令");
|
|
|
+ //ConsoleKey GetKey = Console.ReadKey().Key;
|
|
|
+ //if (GetKey == ConsoleKey.F1) //小牙盘
|
|
|
+ //{
|
|
|
+ // FuncionType = 1;
|
|
|
+ //}
|
|
|
+ //else if (GetKey == ConsoleKey.F2) //大牙盘
|
|
|
+ //{
|
|
|
+ // FuncionType = 2;
|
|
|
+ //}
|
|
|
+ //else if (GetKey == ConsoleKey.F3) //通用指令
|
|
|
+ //{
|
|
|
+ // FuncionType = 3;
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // Console.WriteLine("请正确选择电机类型!");
|
|
|
+ // Console.ReadKey();
|
|
|
+ // return;
|
|
|
+ //}
|
|
|
+ FuncionType = 2;
|
|
|
|
|
|
//输入文件
|
|
|
- Console.WriteLine("请输入文件名称:");
|
|
|
- string inputFilename = Console.ReadLine();
|
|
|
- if (File.Exists(inputFilename + ".src"))//检查文件是否存在
|
|
|
- {
|
|
|
- Console.WriteLine("检查源文件成功!");
|
|
|
- Console.WriteLine("文件名:" + inputFilename + ".src");
|
|
|
- }
|
|
|
- else if (File.Exists(inputFilename + ".json"))//检查文件是否存在
|
|
|
- {
|
|
|
- Console.WriteLine("检查源文件成功!");
|
|
|
- Console.WriteLine("文件名:" + inputFilename + ".json");
|
|
|
- }
|
|
|
- else
|
|
|
+ //Console.WriteLine("请输入文件名称:");
|
|
|
+ //string inputFilename = Console.ReadLine();
|
|
|
+ //if (File.Exists(inputFilename + ".src"))//检查文件是否存在
|
|
|
+ //{
|
|
|
+ // Console.WriteLine("检查源文件成功!");
|
|
|
+ // Console.WriteLine("文件名:" + inputFilename + ".src");
|
|
|
+ //}
|
|
|
+ //else if (File.Exists(inputFilename + ".json"))//检查文件是否存在
|
|
|
+ //{
|
|
|
+ // Console.WriteLine("检查源文件成功!");
|
|
|
+ // Console.WriteLine("文件名:" + inputFilename + ".json");
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ // Console.WriteLine("请检查源文件是否存在!");
|
|
|
+ // Console.ReadKey();
|
|
|
+ // return;
|
|
|
+ //}
|
|
|
+ //搜索路径下所有*.src文件
|
|
|
+ string pathName = Environment.GetCommandLineArgs()[1];
|
|
|
+ string[] srcFiles = Directory.GetFiles(Directory.GetCurrentDirectory() + "\\" + pathName, "*.src", SearchOption.TopDirectoryOnly);
|
|
|
+
|
|
|
+ //批量转换
|
|
|
+ foreach(var srcFile in srcFiles)
|
|
|
{
|
|
|
- Console.WriteLine("请检查源文件是否存在!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
- }
|
|
|
+ //显示文件名
|
|
|
+ Console.WriteLine("[文件名]: " + Path.GetFileName(srcFile));
|
|
|
|
|
|
- //读取并显示源文件
|
|
|
+ //显示文件内容
|
|
|
#if false
|
|
|
- StreamReader objReader = new StreamReader(System.IO.Directory.GetCurrentDirectory() + "\\ModelFile.src");
|
|
|
- string sLine = "";
|
|
|
- ArrayList arrText = new ArrayList();//创建一个动态数组
|
|
|
- while (sLine != null)
|
|
|
- {
|
|
|
- sLine = objReader.ReadLine();
|
|
|
- arrText.Add(sLine);
|
|
|
- }
|
|
|
- objReader.Close();
|
|
|
- foreach (string sOutput in arrText)
|
|
|
- {
|
|
|
- Console.WriteLine(sOutput + "\r\n");
|
|
|
- }
|
|
|
-#endif
|
|
|
- //开始转换文件
|
|
|
- if (FuncionType == 1) //小牙盘
|
|
|
- {
|
|
|
- StreamReader objReader = new StreamReader(System.IO.Directory.GetCurrentDirectory() + "\\" + inputFilename + ".src");
|
|
|
- string sLine = "";
|
|
|
- ArrayList arrText = new ArrayList();//创建一个动态数组
|
|
|
- while (sLine != null)
|
|
|
- {
|
|
|
- sLine = objReader.ReadLine();
|
|
|
- arrText.Add(sLine);
|
|
|
- }
|
|
|
- objReader.Close();
|
|
|
- try
|
|
|
+ do
|
|
|
{
|
|
|
- string filename = inputFilename + ".ttcfg";
|
|
|
- if (File.Exists(filename))//文件已存在,直接退出
|
|
|
+ StreamReader objReader = new StreamReader(srcFile);
|
|
|
+ string sLine = "";
|
|
|
+ ArrayList arrText = new ArrayList();//创建一个动态数组
|
|
|
+ while (sLine != null)
|
|
|
{
|
|
|
- Console.WriteLine("文件已存在!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
+ sLine = objReader.ReadLine();
|
|
|
+ arrText.Add(sLine);
|
|
|
}
|
|
|
- else//文件名有效,转换后的数据存在该文件中
|
|
|
+ objReader.Close();
|
|
|
+ foreach (string sOutput in arrText)
|
|
|
{
|
|
|
- //创建文件
|
|
|
- FileStream fs = File.Create(filename);
|
|
|
- fs.Close();
|
|
|
- //建立字典,存放并获取每个命令的行号
|
|
|
- Dictionary<string, int> DicRowNum = new Dictionary<string, int>();
|
|
|
- DicRowNum.Add("[校验码]", 0);
|
|
|
- DicRowNum.Add("[自定义1]", 0);
|
|
|
- DicRowNum.Add("[自定义2]", 0);
|
|
|
- DicRowNum.Add("[自定义3]", 0);
|
|
|
- DicRowNum.Add("[用户参数1]", 0);
|
|
|
- DicRowNum.Add("[马达参数]", 0);
|
|
|
- DicRowNum.Add("[型号]", 0);
|
|
|
- DicRowNum.Add("[SN号]", 0);
|
|
|
- DicRowNum.Add("[生产信息]", 0);
|
|
|
- DicRowNum.Add("[单力矩标定系数]", 0);
|
|
|
- DicRowNum.Add("[启动值]", 0);
|
|
|
- DicRowNum.Add("[用户参数2]", 0);
|
|
|
- DicRowNum.Add("[三力矩标定系数1]", 0);
|
|
|
- DicRowNum.Add("[三力矩标定系数2]", 0);
|
|
|
- DicRowNum.Add("[三力矩标定系数3]", 0);
|
|
|
- Dictionary<string, int> __dict = new Dictionary<string, int>(DicRowNum);
|
|
|
- foreach (KeyValuePair<string, int> item in __dict)
|
|
|
- {
|
|
|
- foreach (string cmd in arrText)
|
|
|
- {
|
|
|
- if (cmd.Contains(item.Key))
|
|
|
- {
|
|
|
- DicRowNum[item.Key] = arrText.IndexOf(cmd);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //开始遍历,转换每条指令对应的数据
|
|
|
- using (StreamWriter file = new StreamWriter(filename))
|
|
|
- {
|
|
|
- foreach (string index in DicRowNum.Keys)
|
|
|
- {
|
|
|
- int rowNum = DicRowNum[index];
|
|
|
- //判断该命令是否打开
|
|
|
- if (arrText[rowNum].ToString().Split(',')[1] == "0")//该指令关闭
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
- else//该指令打开
|
|
|
- {
|
|
|
- //写入命令功能
|
|
|
- file.WriteLine(index);
|
|
|
- var CmdCode = new byte[34];
|
|
|
- switch (index)
|
|
|
- {
|
|
|
- case "[校验码]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x11;
|
|
|
- CmdCode[1] = 0x08;
|
|
|
- string KeyString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((KeyString.Length > 8) ? 8 : KeyString.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)KeyString[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[自定义1]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x14;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[自定义2]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x16;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[自定义3]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x18;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[用户参数1]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x1B;
|
|
|
- CmdCode[1] = 0x20;
|
|
|
- ushort DataTemp;
|
|
|
- //指拨模式
|
|
|
- CmdCode[2] = Convert.ToByte(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- //启动模式
|
|
|
- CmdCode[3] = Convert.ToByte(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- //停机时间
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(DataTemp >> 8);
|
|
|
- //限速
|
|
|
- CmdCode[6] = Convert.ToByte(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- //下降速度
|
|
|
- CmdCode[7] = Convert.ToByte(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- //前飞
|
|
|
- CmdCode[8] = Convert.ToByte(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- //后飞
|
|
|
- CmdCode[9] = Convert.ToByte(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- //限流
|
|
|
- CmdCode[10] = Convert.ToByte(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- //温度预警
|
|
|
- CmdCode[11] = (byte)(Convert.ToByte(arrText[rowNum + 9].ToString().Split(',')[1]) + 40);
|
|
|
- //温度保护
|
|
|
- CmdCode[12] = (byte)(Convert.ToByte(arrText[rowNum + 10].ToString().Split(',')[1]) + 40);
|
|
|
- //无PBU
|
|
|
- CmdCode[13] = Convert.ToByte(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- //轮胎周长
|
|
|
- CmdCode[14] = Convert.ToByte(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- //电机系列号
|
|
|
- CmdCode[15] = Convert.ToByte(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
- //ECO助力增益
|
|
|
- CmdCode[16] = Convert.ToByte(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- //ECO加速
|
|
|
- CmdCode[17] = Convert.ToByte(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
- //NORM助力增益
|
|
|
- CmdCode[18] = Convert.ToByte(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
- //NORM加速
|
|
|
- CmdCode[19] = Convert.ToByte(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
- //SPORT助力增益
|
|
|
- CmdCode[20] = Convert.ToByte(arrText[rowNum + 18].ToString().Split(',')[1]);
|
|
|
- //SPORT加速
|
|
|
- CmdCode[21] = Convert.ToByte(arrText[rowNum + 19].ToString().Split(',')[1]);
|
|
|
- //TURBO助力增益
|
|
|
- CmdCode[22] = Convert.ToByte(arrText[rowNum + 20].ToString().Split(',')[1]);
|
|
|
- //TURBO加速
|
|
|
- CmdCode[23] = Convert.ToByte(arrText[rowNum + 21].ToString().Split(',')[1]);
|
|
|
- //SMART助力增益
|
|
|
- CmdCode[24] = Convert.ToByte(arrText[rowNum + 22].ToString().Split(',')[1]);
|
|
|
- //SMART加速
|
|
|
- CmdCode[25] = Convert.ToByte(arrText[rowNum + 23].ToString().Split(',')[1]);
|
|
|
- //速度传感器信号个数
|
|
|
- CmdCode[26] = Convert.ToByte(arrText[rowNum + 24].ToString().Split(',')[1]);
|
|
|
- //踏频启动信号个数
|
|
|
- CmdCode[27] = Convert.ToByte(arrText[rowNum + 25].ToString().Split(',')[1]);
|
|
|
- //速度传感器
|
|
|
- CmdCode[28] = Convert.ToByte(arrText[rowNum + 26].ToString().Split(',')[1]);
|
|
|
- //周长微调
|
|
|
- CmdCode[29] = (byte)Convert.ToInt16(arrText[rowNum + 27].ToString().Split(',')[1]);
|
|
|
- //低压保护阈值
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 28].ToString().Split(',')[1]);
|
|
|
- CmdCode[30] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[31] = (byte)(DataTemp >> 8);
|
|
|
- //推行限速
|
|
|
- DataTemp = Convert.ToByte(arrText[rowNum + 29].ToString().Split(',')[1]);
|
|
|
- CmdCode[32] = (byte)Convert.ToByte(DataTemp);
|
|
|
- //推行马达转速
|
|
|
- CmdCode[33] = (byte)Convert.ToByte(arrText[rowNum + 30].ToString().Split(',')[1]);
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[马达参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x1D;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- ushort DataTemp;
|
|
|
- //额定功率
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(DataTemp >> 8);
|
|
|
- //额定转速
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(DataTemp >> 8);
|
|
|
- //定子电阻
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(DataTemp >> 8);
|
|
|
- //Lq
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(DataTemp >> 8);
|
|
|
- //Ld
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[11] = (byte)(DataTemp >> 8);
|
|
|
- //反电动势
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(DataTemp & 0xFF);
|
|
|
- CmdCode[13] = (byte)(DataTemp >> 8);
|
|
|
- //额定电压
|
|
|
- CmdCode[14] = Convert.ToByte(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[型号]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x22;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string ModeString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((ModeString.Length > 16) ? 16 : ModeString.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)ModeString[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[SN号]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x23;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string SnString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((SnString.Length > 16) ? 16 : SnString.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)SnString[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[生产信息]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x24;
|
|
|
- CmdCode[1] = 0x20;
|
|
|
- string MAC_Info = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[2 + i] = (byte)MAC_Info[i];
|
|
|
- }
|
|
|
- MAC_Info = arrText[rowNum + 2].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[10 + i] = (byte)MAC_Info[i];
|
|
|
- }
|
|
|
- MAC_Info = arrText[rowNum + 3].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[18 + i] = (byte)MAC_Info[i];
|
|
|
- }
|
|
|
- MAC_Info = arrText[rowNum + 4].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
- {
|
|
|
- CmdCode[26 + i] = (byte)MAC_Info[i];
|
|
|
- }
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[单力矩标定系数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x2A;
|
|
|
- CmdCode[1] = 0x01;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)DataTemp;
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[启动值]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x2B;
|
|
|
- CmdCode[1] = 0x02;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(DataTemp);
|
|
|
- CmdCode[3] = (byte)(DataTemp >> 8);
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[用户参数2]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x31;
|
|
|
- CmdCode[1] = 0x20;
|
|
|
- short DataTemp_Int16;
|
|
|
- ushort DataTemp_UInt16;
|
|
|
- sbyte DataTemp_Int8;
|
|
|
- //俯仰角零偏
|
|
|
- DataTemp_Int16 = (short)(decimal.Parse(arrText[rowNum + 1].ToString().Split(',')[1]) * 10);
|
|
|
- CmdCode[2] = (byte)(DataTemp_Int16 & 0xFF);
|
|
|
- CmdCode[3] = (byte)(DataTemp_Int16 >> 8);
|
|
|
- //横滚角零偏
|
|
|
- DataTemp_Int16 = (short)(decimal.Parse(arrText[rowNum + 2].ToString().Split(',')[1]) * 10);
|
|
|
- CmdCode[4] = (byte)(DataTemp_Int16 & 0xFF);
|
|
|
- CmdCode[5] = (byte)(DataTemp_Int16 >> 8);
|
|
|
- //支持姿态传感器
|
|
|
- CmdCode[6] = Convert.ToByte(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- //尾灯模式
|
|
|
- CmdCode[7] = Convert.ToByte(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- //前灯电压
|
|
|
- CmdCode[8] = Convert.ToByte(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- //尾灯电压
|
|
|
- CmdCode[9] = Convert.ToByte(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- //超速报警阈值
|
|
|
- DataTemp_UInt16 = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(DataTemp_UInt16 & 0xFF);
|
|
|
- CmdCode[11] = (byte)(DataTemp_UInt16 >> 8);
|
|
|
- //尾灯控制脉宽
|
|
|
- DataTemp_UInt16 = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(DataTemp_UInt16 & 0xFF);
|
|
|
- CmdCode[13] = (byte)(DataTemp_UInt16 >> 8);
|
|
|
- //尾灯控制周期
|
|
|
- DataTemp_UInt16 = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(DataTemp_UInt16 & 0xFF);
|
|
|
- CmdCode[15] = (byte)(DataTemp_UInt16 >> 8);
|
|
|
- //限速起始偏移
|
|
|
- DataTemp_Int8 = Convert.ToSByte(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
- CmdCode[16] = (byte)DataTemp_Int8;
|
|
|
- //限速起始偏移
|
|
|
- DataTemp_Int8 = Convert.ToSByte(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- CmdCode[17] = (byte)DataTemp_Int8;
|
|
|
- //限速偏移
|
|
|
- DataTemp_Int8 = Convert.ToSByte(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)DataTemp_Int8;
|
|
|
- //预留
|
|
|
- CmdCode[19] = 0;
|
|
|
- //ECO最大力矩增益
|
|
|
- CmdCode[20] = Convert.ToByte(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- //ECO最大电流增益
|
|
|
- CmdCode[21] = Convert.ToByte(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
- //NORM助力增益
|
|
|
- CmdCode[22] = Convert.ToByte(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
- //NORM加速
|
|
|
- CmdCode[23] = Convert.ToByte(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
- //SPORT助力增益
|
|
|
- CmdCode[24] = Convert.ToByte(arrText[rowNum + 18].ToString().Split(',')[1]);
|
|
|
- //SPORT加速
|
|
|
- CmdCode[25] = Convert.ToByte(arrText[rowNum + 19].ToString().Split(',')[1]);
|
|
|
- //TURBO助力增益
|
|
|
- CmdCode[26] = Convert.ToByte(arrText[rowNum + 20].ToString().Split(',')[1]);
|
|
|
- //TURBO加速
|
|
|
- CmdCode[27] = Convert.ToByte(arrText[rowNum + 21].ToString().Split(',')[1]);
|
|
|
- //SMART助力增益
|
|
|
- CmdCode[28] = Convert.ToByte(arrText[rowNum + 22].ToString().Split(',')[1]);
|
|
|
- //SMART加速
|
|
|
- CmdCode[29] = Convert.ToByte(arrText[rowNum + 23].ToString().Split(',')[1]);
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[三力矩标定系数1]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x34;
|
|
|
- CmdCode[1] = 0x02;
|
|
|
- CmdCode[2] = 0x01;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[3] = (byte)DataTemp;
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[三力矩标定系数2]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x34;
|
|
|
- CmdCode[1] = 0x02;
|
|
|
- CmdCode[2] = 0x02;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[3] = (byte)DataTemp;
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[三力矩标定系数3]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x34;
|
|
|
- CmdCode[1] = 0x02;
|
|
|
- CmdCode[2] = 0x03;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[3] = (byte)DataTemp;
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- default: break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ Console.WriteLine(sOutput + "\r\n");
|
|
|
}
|
|
|
+ } while (false);
|
|
|
+#endif
|
|
|
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- Console.WriteLine(e);
|
|
|
- Console.WriteLine("转换失败,输入任意键结束!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else if (FuncionType == 2) //大牙盘
|
|
|
- {
|
|
|
- StreamReader objReader = new StreamReader(System.IO.Directory.GetCurrentDirectory() + "\\" + inputFilename + ".src");
|
|
|
- string sLine = "";
|
|
|
- ArrayList arrText = new ArrayList();//创建一个动态数组
|
|
|
- while (sLine != null)
|
|
|
+ //开始转换
|
|
|
+ do
|
|
|
{
|
|
|
- sLine = objReader.ReadLine();
|
|
|
- arrText.Add(sLine);
|
|
|
- }
|
|
|
- objReader.Close();
|
|
|
- try
|
|
|
- {
|
|
|
- string filename = inputFilename + ".ttcfg";
|
|
|
- if (File.Exists(filename))//文件已存在,直接退出
|
|
|
+ StreamReader objReader = new StreamReader(srcFile);
|
|
|
+ string sLine = "";
|
|
|
+ ArrayList arrText = new ArrayList();//创建一个动态数组
|
|
|
+ while (sLine != null)
|
|
|
{
|
|
|
- Console.WriteLine("文件已存在!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
+ sLine = objReader.ReadLine();
|
|
|
+ arrText.Add(sLine);
|
|
|
}
|
|
|
- else//文件名有效,转换后的数据存在该文件中
|
|
|
+ objReader.Close();
|
|
|
+ try
|
|
|
{
|
|
|
- //创建文件
|
|
|
- FileStream fs = File.Create(filename);
|
|
|
- fs.Close();
|
|
|
- //建立字典,存放并获取每个命令的行号
|
|
|
- Dictionary<string, int> DicRowNum = new Dictionary<string, int>();
|
|
|
- DicRowNum.Add("[型号]", 0);
|
|
|
- DicRowNum.Add("[SN号]", 0);
|
|
|
- DicRowNum.Add("[校验码]", 0);
|
|
|
- DicRowNum.Add("[自定义1]", 0);
|
|
|
- DicRowNum.Add("[自定义2]", 0);
|
|
|
- DicRowNum.Add("[自定义3]", 0);
|
|
|
- DicRowNum.Add("[生产信息]", 0);
|
|
|
- DicRowNum.Add("[马达信息]", 0);
|
|
|
- DicRowNum.Add("[整车参数]", 0);
|
|
|
- DicRowNum.Add("[控制参数]", 0);
|
|
|
- DicRowNum.Add("[力矩传感器参数]", 0);
|
|
|
- DicRowNum.Add("[其它传感器参数]", 0);
|
|
|
- DicRowNum.Add("[助力参数]", 0);
|
|
|
- DicRowNum.Add("[调试参数]", 0);
|
|
|
-
|
|
|
- Dictionary<string, int> __dict = new Dictionary<string, int>(DicRowNum);
|
|
|
- foreach (KeyValuePair<string, int> item in __dict)
|
|
|
+ string filename = Path.GetDirectoryName(srcFile) + "\\" + Path.GetFileName(srcFile) + ".ttcfg";
|
|
|
+ if (File.Exists(filename))//文件已存在,跳过
|
|
|
{
|
|
|
- foreach (string cmd in arrText)
|
|
|
- {
|
|
|
- if (cmd.Contains(item.Key))
|
|
|
- {
|
|
|
- DicRowNum[item.Key] = arrText.IndexOf(cmd);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
+ Console.WriteLine("文件已存在,跳过!\r\n");
|
|
|
+ continue;
|
|
|
}
|
|
|
- //开始遍历,转换每条指令对应的数据
|
|
|
- using (StreamWriter file = new StreamWriter(filename))
|
|
|
+ else//文件名有效,转换后的数据存在该文件中
|
|
|
{
|
|
|
- foreach (string index in DicRowNum.Keys)
|
|
|
+ //创建文件
|
|
|
+ FileStream fs = File.Create(filename);
|
|
|
+ fs.Close();
|
|
|
+ //建立字典,存放并获取每个命令的行号
|
|
|
+ Dictionary<string, int> DicRowNum = new Dictionary<string, int>();
|
|
|
+ DicRowNum.Add("[型号]", 0);
|
|
|
+ DicRowNum.Add("[SN号]", 0);
|
|
|
+ DicRowNum.Add("[校验码]", 0);
|
|
|
+ DicRowNum.Add("[自定义1]", 0);
|
|
|
+ DicRowNum.Add("[自定义2]", 0);
|
|
|
+ DicRowNum.Add("[自定义3]", 0);
|
|
|
+ DicRowNum.Add("[生产信息]", 0);
|
|
|
+ DicRowNum.Add("[马达信息]", 0);
|
|
|
+ DicRowNum.Add("[整车参数]", 0);
|
|
|
+ DicRowNum.Add("[控制参数]", 0);
|
|
|
+ DicRowNum.Add("[力矩传感器参数]", 0);
|
|
|
+ DicRowNum.Add("[其它传感器参数]", 0);
|
|
|
+ DicRowNum.Add("[助力参数]", 0);
|
|
|
+ DicRowNum.Add("[调试参数]", 0);
|
|
|
+
|
|
|
+ Dictionary<string, int> __dict = new Dictionary<string, int>(DicRowNum);
|
|
|
+ foreach (KeyValuePair<string, int> item in __dict)
|
|
|
{
|
|
|
- int rowNum = DicRowNum[index];
|
|
|
- //判断该命令是否打开
|
|
|
- if (arrText[rowNum].ToString().Split(',')[1] == "0")//该指令关闭
|
|
|
+ foreach (string cmd in arrText)
|
|
|
{
|
|
|
- continue;
|
|
|
+ if (cmd.Contains(item.Key))
|
|
|
+ {
|
|
|
+ DicRowNum[item.Key] = arrText.IndexOf(cmd);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
- else//该指令打开
|
|
|
+ }
|
|
|
+ //开始遍历,转换每条指令对应的数据
|
|
|
+ using (StreamWriter file = new StreamWriter(filename))
|
|
|
+ {
|
|
|
+ foreach (string index in DicRowNum.Keys)
|
|
|
{
|
|
|
- //写入命令功能
|
|
|
- file.WriteLine(index);
|
|
|
- var CmdCode = new byte[100];
|
|
|
- Array.Clear(CmdCode, 0, CmdCode.Length);
|
|
|
- switch (index)
|
|
|
+ int rowNum = DicRowNum[index];
|
|
|
+ //判断该命令是否打开
|
|
|
+ if (arrText[rowNum].ToString().Split(',')[1] == "0")//该指令关闭
|
|
|
+ {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ else//该指令打开
|
|
|
{
|
|
|
- case "[型号]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x22;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string ModeString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((ModeString.Length > 16) ? 16 : ModeString.Length); i++)
|
|
|
+ //写入命令功能
|
|
|
+ file.WriteLine(index);
|
|
|
+ var CmdCode = new byte[100];
|
|
|
+ Array.Clear(CmdCode, 0, CmdCode.Length);
|
|
|
+ switch (index)
|
|
|
+ {
|
|
|
+ case "[型号]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)ModeString[i];
|
|
|
+ CmdCode[0] = 0x22;
|
|
|
+ CmdCode[1] = 0x10;
|
|
|
+ string ModeString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((ModeString.Length > 16) ? 16 : ModeString.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)ModeString[i];
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[SN号]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x23;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string SnString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((SnString.Length > 16) ? 16 : SnString.Length); i++)
|
|
|
+ case "[SN号]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)SnString[i];
|
|
|
+ CmdCode[0] = 0x23;
|
|
|
+ CmdCode[1] = 0x10;
|
|
|
+ string SnString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((SnString.Length > 16) ? 16 : SnString.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)SnString[i];
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[校验码]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x11;
|
|
|
- CmdCode[1] = 0x08;
|
|
|
- string KeyString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((KeyString.Length > 8) ? 8 : KeyString.Length); i++)
|
|
|
+ case "[校验码]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)KeyString[i];
|
|
|
+ CmdCode[0] = 0x11;
|
|
|
+ CmdCode[1] = 0x08;
|
|
|
+ string KeyString = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((KeyString.Length > 8) ? 8 : KeyString.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)KeyString[i];
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[自定义1]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x14;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
+ case "[自定义1]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
+ CmdCode[0] = 0x14;
|
|
|
+ CmdCode[1] = 0x10;
|
|
|
+ string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[自定义2]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x16;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
+ case "[自定义2]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
+ CmdCode[0] = 0x16;
|
|
|
+ CmdCode[1] = 0x10;
|
|
|
+ string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[自定义3]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x18;
|
|
|
- CmdCode[1] = 0x10;
|
|
|
- string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
+ case "[自定义3]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
+ CmdCode[0] = 0x18;
|
|
|
+ CmdCode[1] = 0x10;
|
|
|
+ string UserInfo1String = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((UserInfo1String.Length > 16) ? 16 : UserInfo1String.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[生产信息]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x24;
|
|
|
- CmdCode[1] = 0x20;
|
|
|
- string MAC_Info = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ case "[生产信息]":
|
|
|
{
|
|
|
- CmdCode[2 + i] = (byte)MAC_Info[i];
|
|
|
+ CmdCode[0] = 0x24;
|
|
|
+ CmdCode[1] = 0x20;
|
|
|
+ string MAC_Info = arrText[rowNum + 1].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[2 + i] = (byte)MAC_Info[i];
|
|
|
+ }
|
|
|
+ MAC_Info = arrText[rowNum + 2].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[10 + i] = (byte)MAC_Info[i];
|
|
|
+ }
|
|
|
+ MAC_Info = arrText[rowNum + 3].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[18 + i] = (byte)MAC_Info[i];
|
|
|
+ }
|
|
|
+ MAC_Info = arrText[rowNum + 4].ToString().Split(',')[1];
|
|
|
+ for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ {
|
|
|
+ CmdCode[26 + i] = (byte)MAC_Info[i];
|
|
|
+ }
|
|
|
+
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- MAC_Info = arrText[rowNum + 2].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ case "[马达信息]":
|
|
|
{
|
|
|
- CmdCode[10 + i] = (byte)MAC_Info[i];
|
|
|
+ CmdCode[0] = 0x3B;
|
|
|
+ CmdCode[1] = 0x28;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //极对数
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //电阻
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //d轴电感
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
+ CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
+ //q轴电感
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
+ CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
+ //永磁体磁链
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
+ CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
+ //Id最大值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
+ CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
+ //Id最小值
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
+ CmdCode[16] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[17] = (byte)(sDataTemp >> 8);
|
|
|
+ //额定转速
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
+ //额定功率
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
+ CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
+ //额定电流
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(uDataTemp >> 8);
|
|
|
+ //额定电压
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
+ CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
+ //惯量
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
+ //最大转矩
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
+ CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
+ CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留2
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
+ CmdCode[32] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[33] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留3
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
+ CmdCode[34] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留4
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 18].ToString().Split(',')[1]);
|
|
|
+ CmdCode[36] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[37] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留5
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 19].ToString().Split(',')[1]);
|
|
|
+ CmdCode[38] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[39] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留6
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 20].ToString().Split(',')[1]);
|
|
|
+ CmdCode[40] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[41] = (byte)(uDataTemp >> 8);
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- MAC_Info = arrText[rowNum + 3].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ case "[整车参数]":
|
|
|
{
|
|
|
- CmdCode[18 + i] = (byte)MAC_Info[i];
|
|
|
+ CmdCode[0] = 0x3D;
|
|
|
+ CmdCode[1] = 0x1C;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //轮胎周长
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //电控传动比
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //助力最大限速
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
+ CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
+ //推行限速
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
+ CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
+ //前牙盘
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
+ CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
+ //后牙盘
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
+ CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
+ //助力方案1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
+ CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
+ //助力方案2
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
+ //前后灯参数
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
+ CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
+ //周长微调
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(sDataTemp >> 8);
|
|
|
+ //启动模式
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
+ CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
+ //开关机时间
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
+ CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- MAC_Info = arrText[rowNum + 4].ToString().Split(',')[1];
|
|
|
- for (ushort i = 0; i < ((MAC_Info.Length > 8) ? 8 : MAC_Info.Length); i++)
|
|
|
+ case "[控制参数]":
|
|
|
{
|
|
|
- CmdCode[26 + i] = (byte)MAC_Info[i];
|
|
|
+ CmdCode[0] = 0x3F;
|
|
|
+ CmdCode[1] = 0x22;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //位置传感器零点
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //位置传感器当前零点
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //峰值电流
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
+ CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
+ //过流保护阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
+ CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
+ //最高档过压保护阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
+ CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
+ //最高档欠压保护阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
+ CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
+ //超速保护阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
+ CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
+ //控制器过热保护阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
+ //控制器过热恢复阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
+ CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
+ //控制器过热降额阈值
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(sDataTemp >> 8);
|
|
|
+ //电机过热保护阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
+ CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
+ //电机过热恢复阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
+ //电机过热降额阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
+ CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
+ CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留2
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
+ CmdCode[32] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[33] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留3
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
+ CmdCode[34] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[马达信息]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x3B;
|
|
|
- CmdCode[1] = 0x28;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //极对数
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //电阻
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //d轴电感
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
- //q轴电感
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
- //永磁体磁链
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
- //Id最大值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
- //Id最小值
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- CmdCode[16] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[17] = (byte)(sDataTemp >> 8);
|
|
|
- //额定转速
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
- //额定功率
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
- CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
- //额定电流
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- CmdCode[22] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[23] = (byte)(uDataTemp >> 8);
|
|
|
- //额定电压
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
- //惯量
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
- CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
- //最大转矩
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
- //预留1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
- CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
- //预留2
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
- CmdCode[32] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[33] = (byte)(uDataTemp >> 8);
|
|
|
- //预留3
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
- CmdCode[34] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
- //预留4
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 18].ToString().Split(',')[1]);
|
|
|
- CmdCode[36] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[37] = (byte)(uDataTemp >> 8);
|
|
|
- //预留5
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 19].ToString().Split(',')[1]);
|
|
|
- CmdCode[38] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[39] = (byte)(uDataTemp >> 8);
|
|
|
- //预留6
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 20].ToString().Split(',')[1]);
|
|
|
- CmdCode[40] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[41] = (byte)(uDataTemp >> 8);
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[整车参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x3D;
|
|
|
- CmdCode[1] = 0x1C;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //轮胎周长
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //电控传动比
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //助力最大限速
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
- //推行限速
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
- //前牙盘
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
- //后牙盘
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
- //助力方案1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
- //助力方案2
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
- //前后灯参数
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
- CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
- //周长微调
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- CmdCode[22] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[23] = (byte)(sDataTemp >> 8);
|
|
|
- //启动模式
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
- //开关机时间
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
- CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
- //预留1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[控制参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x3F;
|
|
|
- CmdCode[1] = 0x22;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //位置传感器零点
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //位置传感器当前零点
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //峰值电流
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
- //过流保护阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
- //最高档过压保护阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
- //最高档欠压保护阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
- //超速保护阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
- //控制器过热保护阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
- //控制器过热恢复阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
- CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
- //控制器过热降额阈值
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- CmdCode[22] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[23] = (byte)(sDataTemp >> 8);
|
|
|
- //电机过热保护阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
- //电机过热恢复阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
- CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
- //电机过热降额阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
- //预留1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
- CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
- //预留2
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
- CmdCode[32] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[33] = (byte)(uDataTemp >> 8);
|
|
|
- //预留3
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
- CmdCode[34] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[力矩传感器参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x47;
|
|
|
- CmdCode[1] = 0x2E;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //出厂零点
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //历史零点1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //历史零点2
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
- //历史零点3
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
- //最大零点
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
- //最大转矩
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
- //第一阶段加载值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
- //第一阶段采集值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
- //第二阶段加载值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
- CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
- //第二阶段采集值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- CmdCode[22] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[23] = (byte)(uDataTemp >> 8);
|
|
|
- //第三阶段加载值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
- //第三阶段采集值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
- CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
- //第四阶段加载值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
- //第四阶段采集值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
- CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[其它传感器参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x42;
|
|
|
- CmdCode[1] = 0x0E;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //踏频一圈脉冲数
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //车速一圈脉冲数
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[助力参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x44;
|
|
|
- CmdCode[1] = 0x50;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //空
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //零速启动增益
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //巡航启动增益
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
- //助力启动阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 85].ToString().Split(',')[1]);
|
|
|
- CmdCode[46] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[47] = (byte)(uDataTemp >> 8);
|
|
|
- //助力停止阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 86].ToString().Split(',')[1]);
|
|
|
- CmdCode[48] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[49] = (byte)(uDataTemp >> 8);
|
|
|
- //启动时电流增长阶梯
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 87].ToString().Split(',')[1]);
|
|
|
- CmdCode[50] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[51] = (byte)(uDataTemp >> 8);
|
|
|
- //启动踏频脉冲数
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 88].ToString().Split(',')[1]);
|
|
|
- CmdCode[52] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[53] = (byte)(uDataTemp >> 8);
|
|
|
- //转矩滤波脉冲数
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 89].ToString().Split(',')[1]);
|
|
|
- CmdCode[54] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[55] = (byte)(uDataTemp >> 8);
|
|
|
- //待速转速
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 90].ToString().Split(',')[1]);
|
|
|
- CmdCode[56] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[57] = (byte)(uDataTemp >> 8);
|
|
|
- //待速最大电流
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 91].ToString().Split(',')[1]);
|
|
|
- CmdCode[58] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[59] = (byte)(uDataTemp >> 8);
|
|
|
- //限速启动阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 92].ToString().Split(',')[1]);
|
|
|
- CmdCode[60] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[61] = (byte)(uDataTemp >> 8);
|
|
|
- //限速停止阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 93].ToString().Split(',')[1]);
|
|
|
- CmdCode[62] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[63] = (byte)(uDataTemp >> 8);
|
|
|
- //踏频占比
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 94].ToString().Split(',')[1]);
|
|
|
- CmdCode[64] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[65] = (byte)(uDataTemp >> 8);
|
|
|
- //踏频助力Kp
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 95].ToString().Split(',')[1]);
|
|
|
- CmdCode[66] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[67] = (byte)(uDataTemp >> 8);
|
|
|
- //踏频助力加速限制
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 96].ToString().Split(',')[1]);
|
|
|
- CmdCode[68] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[69] = (byte)(sDataTemp >> 8);
|
|
|
- //踏频助力退饱和步进
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 97].ToString().Split(',')[1]);
|
|
|
- CmdCode[70] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[71] = (byte)(sDataTemp >> 8);
|
|
|
- //踏频助力电流步进
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 98].ToString().Split(',')[1]);
|
|
|
- CmdCode[72] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[73] = (byte)(sDataTemp >> 8);
|
|
|
- //预留1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 99].ToString().Split(',')[1]);
|
|
|
- CmdCode[74] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[75] = (byte)(uDataTemp >> 8);
|
|
|
- //预留2
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 100].ToString().Split(',')[1]);
|
|
|
- CmdCode[76] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[77] = (byte)(uDataTemp >> 8);
|
|
|
- //预留3
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 101].ToString().Split(',')[1]);
|
|
|
- CmdCode[78] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[79] = (byte)(uDataTemp >> 8);
|
|
|
- //预留4
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 102].ToString().Split(',')[1]);
|
|
|
- CmdCode[80] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[81] = (byte)(uDataTemp >> 8);
|
|
|
- //转矩曲线1-15,踏频曲线1-5,按照前5条同时写力矩和踏频,后9条写力矩和踏频5
|
|
|
- for (ushort i = 1; i <= 15; i++)
|
|
|
+ case "[力矩传感器参数]":
|
|
|
{
|
|
|
- Int32 Data32;
|
|
|
- //转矩曲线编号
|
|
|
- uDataTemp = (ushort)(i);
|
|
|
+ CmdCode[0] = 0x47;
|
|
|
+ CmdCode[1] = 0x2E;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //出厂零点
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //历史零点1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //历史零点2
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
+ CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
+ //历史零点3
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
- //踏频曲线编号
|
|
|
- uDataTemp = (ushort)(i <= 5 ? i : 5);
|
|
|
+ //最大零点
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
- //转矩曲线a
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 1)].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[15] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[16] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[17] = (byte)(Data32 >> 24);
|
|
|
- //转矩曲线b
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 2)].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[19] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[20] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[21] = (byte)(Data32 >> 24);
|
|
|
- //转矩曲线c
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 3)].ToString().Split(',')[1]);
|
|
|
- CmdCode[22] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[23] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[24] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[25] = (byte)(Data32 >> 24);
|
|
|
- //转矩曲线d
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 4)].ToString().Split(',')[1]);
|
|
|
- CmdCode[26] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[27] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[28] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[29] = (byte)(Data32 >> 24);
|
|
|
- if (i <= 5)
|
|
|
+ //最大转矩
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
+ CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
+ //第一阶段加载值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
+ CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
+ //第一阶段采集值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
+ //第二阶段加载值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
+ CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
+ //第二阶段采集值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(uDataTemp >> 8);
|
|
|
+ //第三阶段加载值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
+ CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
+ //第三阶段采集值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
+ //第四阶段加载值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
+ CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
+ //第四阶段采集值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
+ CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "[其它传感器参数]":
|
|
|
+ {
|
|
|
+ CmdCode[0] = 0x42;
|
|
|
+ CmdCode[1] = 0x0E;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //踏频一圈脉冲数
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //车速一圈脉冲数
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "[助力参数]":
|
|
|
+ {
|
|
|
+ CmdCode[0] = 0x44;
|
|
|
+ CmdCode[1] = 0x50;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //空
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //零速启动增益
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //巡航启动增益
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
+ CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
+ //助力启动阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 85].ToString().Split(',')[1]);
|
|
|
+ CmdCode[46] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[47] = (byte)(uDataTemp >> 8);
|
|
|
+ //助力停止阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 86].ToString().Split(',')[1]);
|
|
|
+ CmdCode[48] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[49] = (byte)(uDataTemp >> 8);
|
|
|
+ //启动时电流增长阶梯
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 87].ToString().Split(',')[1]);
|
|
|
+ CmdCode[50] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[51] = (byte)(uDataTemp >> 8);
|
|
|
+ //启动踏频脉冲数
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 88].ToString().Split(',')[1]);
|
|
|
+ CmdCode[52] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[53] = (byte)(uDataTemp >> 8);
|
|
|
+ //转矩滤波脉冲数
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 89].ToString().Split(',')[1]);
|
|
|
+ CmdCode[54] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[55] = (byte)(uDataTemp >> 8);
|
|
|
+ //待速转速
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 90].ToString().Split(',')[1]);
|
|
|
+ CmdCode[56] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[57] = (byte)(uDataTemp >> 8);
|
|
|
+ //待速最大电流
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 91].ToString().Split(',')[1]);
|
|
|
+ CmdCode[58] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[59] = (byte)(uDataTemp >> 8);
|
|
|
+ //限速启动阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 92].ToString().Split(',')[1]);
|
|
|
+ CmdCode[60] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[61] = (byte)(uDataTemp >> 8);
|
|
|
+ //限速停止阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 93].ToString().Split(',')[1]);
|
|
|
+ CmdCode[62] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[63] = (byte)(uDataTemp >> 8);
|
|
|
+ //踏频占比
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 94].ToString().Split(',')[1]);
|
|
|
+ CmdCode[64] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[65] = (byte)(uDataTemp >> 8);
|
|
|
+ //踏频助力Kp
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 95].ToString().Split(',')[1]);
|
|
|
+ CmdCode[66] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[67] = (byte)(uDataTemp >> 8);
|
|
|
+ //踏频助力加速限制
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 96].ToString().Split(',')[1]);
|
|
|
+ CmdCode[68] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[69] = (byte)(sDataTemp >> 8);
|
|
|
+ //踏频助力退饱和步进
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 97].ToString().Split(',')[1]);
|
|
|
+ CmdCode[70] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[71] = (byte)(sDataTemp >> 8);
|
|
|
+ //踏频助力电流步进
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 98].ToString().Split(',')[1]);
|
|
|
+ CmdCode[72] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[73] = (byte)(sDataTemp >> 8);
|
|
|
+ //预留1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 99].ToString().Split(',')[1]);
|
|
|
+ CmdCode[74] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[75] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留2
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 100].ToString().Split(',')[1]);
|
|
|
+ CmdCode[76] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[77] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留3
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 101].ToString().Split(',')[1]);
|
|
|
+ CmdCode[78] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[79] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留4
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 102].ToString().Split(',')[1]);
|
|
|
+ CmdCode[80] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[81] = (byte)(uDataTemp >> 8);
|
|
|
+ //转矩曲线1-15,踏频曲线1-5,按照前5条同时写力矩和踏频,后9条写力矩和踏频5
|
|
|
+ for (ushort i = 1; i <= 15; i++)
|
|
|
{
|
|
|
- //踏频曲线a
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 61)].ToString().Split(',')[1]);
|
|
|
- CmdCode[30] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[31] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[32] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[33] = (byte)(Data32 >> 24);
|
|
|
- //踏频曲线b
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 62)].ToString().Split(',')[1]);
|
|
|
- CmdCode[34] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[35] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[36] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[37] = (byte)(Data32 >> 24);
|
|
|
- //踏频曲线c
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 63)].ToString().Split(',')[1]);
|
|
|
- CmdCode[38] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[39] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[40] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[41] = (byte)(Data32 >> 24);
|
|
|
- //踏频曲线d
|
|
|
- Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 64)].ToString().Split(',')[1]);
|
|
|
- CmdCode[42] = (byte)(Data32 & 0xFF);
|
|
|
- CmdCode[43] = (byte)(Data32 >> 8);
|
|
|
- CmdCode[44] = (byte)(Data32 >> 16);
|
|
|
- CmdCode[45] = (byte)(Data32 >> 24);
|
|
|
+ Int32 Data32;
|
|
|
+ //转矩曲线编号
|
|
|
+ uDataTemp = (ushort)(i);
|
|
|
+ CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
+ //踏频曲线编号
|
|
|
+ uDataTemp = (ushort)(i <= 5 ? i : 5);
|
|
|
+ CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
+ //转矩曲线a
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 1)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[14] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[15] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[16] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[17] = (byte)(Data32 >> 24);
|
|
|
+ //转矩曲线b
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 2)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[20] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[21] = (byte)(Data32 >> 24);
|
|
|
+ //转矩曲线c
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 3)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[24] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[25] = (byte)(Data32 >> 24);
|
|
|
+ //转矩曲线d
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 4)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[28] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[29] = (byte)(Data32 >> 24);
|
|
|
+ if (i <= 5)
|
|
|
+ {
|
|
|
+ //踏频曲线a
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 61)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[30] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[31] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[32] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[33] = (byte)(Data32 >> 24);
|
|
|
+ //踏频曲线b
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 62)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[34] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[35] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[36] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[37] = (byte)(Data32 >> 24);
|
|
|
+ //踏频曲线c
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 63)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[38] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[39] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[40] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[41] = (byte)(Data32 >> 24);
|
|
|
+ //踏频曲线d
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 64)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[42] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[43] = (byte)(Data32 >> 8);
|
|
|
+ CmdCode[44] = (byte)(Data32 >> 16);
|
|
|
+ CmdCode[45] = (byte)(Data32 >> 24);
|
|
|
+ }
|
|
|
+
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine("[曲线" + i.ToString() + "]");
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
}
|
|
|
-
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "[调试参数]":
|
|
|
+ {
|
|
|
+ CmdCode[0] = 0x46;
|
|
|
+ CmdCode[1] = 0x3C;
|
|
|
+ ushort uDataTemp;
|
|
|
+ short sDataTemp;
|
|
|
+ //存储标志
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
+ CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
+ //运行模式
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
+ CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
+ //位置获取模式
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
+ CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
+ //采样模式
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
+ CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
+ //旋转方向
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
+ CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
+ //定位电流
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
+ CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
+ //拖拽电压
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
+ CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
+ //拖拽电流
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
+ CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
+ //拖拽频率
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
+ //加速斜率
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
+ CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
+ //减速斜率
|
|
|
+ sDataTemp = Convert.ToInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(sDataTemp & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(sDataTemp >> 8);
|
|
|
+ //转速环控制带宽
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
+ CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
+ //转速环控制m
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
+ //电流环控制带宽
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
+ CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
+ //电流环控制m
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
+ CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
+ //磁链观测器带宽
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
+ CmdCode[32] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[33] = (byte)(uDataTemp >> 8);
|
|
|
+ //磁链观测器m
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
+ CmdCode[34] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
+ //锁相环带宽
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 18].ToString().Split(',')[1]);
|
|
|
+ CmdCode[36] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[37] = (byte)(uDataTemp >> 8);
|
|
|
+ //锁相环m
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 19].ToString().Split(',')[1]);
|
|
|
+ CmdCode[38] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[39] = (byte)(uDataTemp >> 8);
|
|
|
+ //惯量
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 20].ToString().Split(',')[1]);
|
|
|
+ CmdCode[40] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[41] = (byte)(uDataTemp >> 8);
|
|
|
+ //PWM最大占空比
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 21].ToString().Split(',')[1]);
|
|
|
+ CmdCode[42] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[43] = (byte)(uDataTemp >> 8);
|
|
|
+ //PWM七段式切五段式阈值
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 22].ToString().Split(',')[1]);
|
|
|
+ CmdCode[44] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[45] = (byte)(uDataTemp >> 8);
|
|
|
+ //功率限幅
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 23].ToString().Split(',')[1]);
|
|
|
+ CmdCode[46] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[47] = (byte)(uDataTemp >> 8);
|
|
|
+ //功率限幅Error
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 24].ToString().Split(',')[1]);
|
|
|
+ CmdCode[48] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[49] = (byte)(uDataTemp >> 8);
|
|
|
+ //功率限幅Kp
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 25].ToString().Split(',')[1]);
|
|
|
+ CmdCode[50] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[51] = (byte)(uDataTemp >> 8);
|
|
|
+ //功率限幅Ki
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 26].ToString().Split(',')[1]);
|
|
|
+ CmdCode[52] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[53] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留1
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 27].ToString().Split(',')[1]);
|
|
|
+ CmdCode[54] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[55] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留2
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 28].ToString().Split(',')[1]);
|
|
|
+ CmdCode[56] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[57] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留3
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 29].ToString().Split(',')[1]);
|
|
|
+ CmdCode[58] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[59] = (byte)(uDataTemp >> 8);
|
|
|
+ //预留4
|
|
|
+ uDataTemp = Convert.ToUInt16(arrText[rowNum + 30].ToString().Split(',')[1]);
|
|
|
+ CmdCode[60] = (byte)(uDataTemp & 0xFF);
|
|
|
+ CmdCode[61] = (byte)(uDataTemp >> 8);
|
|
|
//写入文件
|
|
|
- file.WriteLine("[曲线" + i.ToString() + "]");
|
|
|
file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
+ break;
|
|
|
}
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[调试参数]":
|
|
|
- {
|
|
|
- CmdCode[0] = 0x46;
|
|
|
- CmdCode[1] = 0x3C;
|
|
|
- ushort uDataTemp;
|
|
|
- short sDataTemp;
|
|
|
- //存储标志
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[2] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[3] = (byte)(uDataTemp >> 8);
|
|
|
- //运行模式
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 2].ToString().Split(',')[1]);
|
|
|
- CmdCode[4] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[5] = (byte)(uDataTemp >> 8);
|
|
|
- //位置获取模式
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 3].ToString().Split(',')[1]);
|
|
|
- CmdCode[6] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[7] = (byte)(uDataTemp >> 8);
|
|
|
- //采样模式
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 4].ToString().Split(',')[1]);
|
|
|
- CmdCode[8] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[9] = (byte)(uDataTemp >> 8);
|
|
|
- //旋转方向
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 5].ToString().Split(',')[1]);
|
|
|
- CmdCode[10] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[11] = (byte)(uDataTemp >> 8);
|
|
|
- //定位电流
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 6].ToString().Split(',')[1]);
|
|
|
- CmdCode[12] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[13] = (byte)(uDataTemp >> 8);
|
|
|
- //拖拽电压
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 7].ToString().Split(',')[1]);
|
|
|
- CmdCode[14] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[15] = (byte)(uDataTemp >> 8);
|
|
|
- //拖拽电流
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 8].ToString().Split(',')[1]);
|
|
|
- CmdCode[16] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[17] = (byte)(uDataTemp >> 8);
|
|
|
- //拖拽频率
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 9].ToString().Split(',')[1]);
|
|
|
- CmdCode[18] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
- //加速斜率
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 10].ToString().Split(',')[1]);
|
|
|
- CmdCode[20] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[21] = (byte)(uDataTemp >> 8);
|
|
|
- //减速斜率
|
|
|
- sDataTemp = Convert.ToInt16(arrText[rowNum + 11].ToString().Split(',')[1]);
|
|
|
- CmdCode[22] = (byte)(sDataTemp & 0xFF);
|
|
|
- CmdCode[23] = (byte)(sDataTemp >> 8);
|
|
|
- //转速环控制带宽
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 12].ToString().Split(',')[1]);
|
|
|
- CmdCode[24] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[25] = (byte)(uDataTemp >> 8);
|
|
|
- //转速环控制m
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 13].ToString().Split(',')[1]);
|
|
|
- CmdCode[26] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
- //电流环控制带宽
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 14].ToString().Split(',')[1]);
|
|
|
- CmdCode[28] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[29] = (byte)(uDataTemp >> 8);
|
|
|
- //电流环控制m
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 15].ToString().Split(',')[1]);
|
|
|
- CmdCode[30] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
- //磁链观测器带宽
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 16].ToString().Split(',')[1]);
|
|
|
- CmdCode[32] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[33] = (byte)(uDataTemp >> 8);
|
|
|
- //磁链观测器m
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 17].ToString().Split(',')[1]);
|
|
|
- CmdCode[34] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
- //锁相环带宽
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 18].ToString().Split(',')[1]);
|
|
|
- CmdCode[36] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[37] = (byte)(uDataTemp >> 8);
|
|
|
- //锁相环m
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 19].ToString().Split(',')[1]);
|
|
|
- CmdCode[38] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[39] = (byte)(uDataTemp >> 8);
|
|
|
- //惯量
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 20].ToString().Split(',')[1]);
|
|
|
- CmdCode[40] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[41] = (byte)(uDataTemp >> 8);
|
|
|
- //PWM最大占空比
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 21].ToString().Split(',')[1]);
|
|
|
- CmdCode[42] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[43] = (byte)(uDataTemp >> 8);
|
|
|
- //PWM七段式切五段式阈值
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 22].ToString().Split(',')[1]);
|
|
|
- CmdCode[44] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[45] = (byte)(uDataTemp >> 8);
|
|
|
- //功率限幅
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 23].ToString().Split(',')[1]);
|
|
|
- CmdCode[46] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[47] = (byte)(uDataTemp >> 8);
|
|
|
- //功率限幅Error
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 24].ToString().Split(',')[1]);
|
|
|
- CmdCode[48] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[49] = (byte)(uDataTemp >> 8);
|
|
|
- //功率限幅Kp
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 25].ToString().Split(',')[1]);
|
|
|
- CmdCode[50] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[51] = (byte)(uDataTemp >> 8);
|
|
|
- //功率限幅Ki
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 26].ToString().Split(',')[1]);
|
|
|
- CmdCode[52] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[53] = (byte)(uDataTemp >> 8);
|
|
|
- //预留1
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 27].ToString().Split(',')[1]);
|
|
|
- CmdCode[54] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[55] = (byte)(uDataTemp >> 8);
|
|
|
- //预留2
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 28].ToString().Split(',')[1]);
|
|
|
- CmdCode[56] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[57] = (byte)(uDataTemp >> 8);
|
|
|
- //预留3
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 29].ToString().Split(',')[1]);
|
|
|
- CmdCode[58] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[59] = (byte)(uDataTemp >> 8);
|
|
|
- //预留4
|
|
|
- uDataTemp = Convert.ToUInt16(arrText[rowNum + 30].ToString().Split(',')[1]);
|
|
|
- CmdCode[60] = (byte)(uDataTemp & 0xFF);
|
|
|
- CmdCode[61] = (byte)(uDataTemp >> 8);
|
|
|
- //写入文件
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(0x751, 0x16, CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- default: break;
|
|
|
+ default: break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- Console.WriteLine(e);
|
|
|
- Console.WriteLine("转换失败,输入任意键结束!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- else if (FuncionType == 3)
|
|
|
- {
|
|
|
- //读取转换源数据
|
|
|
- string SrcInfo = File.ReadAllText(System.IO.Directory.GetCurrentDirectory() + "\\" + inputFilename + ".json");
|
|
|
- CommandInfo Command = JsonConvert.DeserializeObject<CommandInfo>(SrcInfo);
|
|
|
- //转换保存文件
|
|
|
- string filename = inputFilename + ".ttcfg";
|
|
|
- if (File.Exists(filename))//文件已存在,直接退出
|
|
|
- {
|
|
|
- Console.WriteLine("文件已存在!");
|
|
|
- Console.ReadKey();
|
|
|
- return;
|
|
|
- }
|
|
|
- else//文件名有效,转换后的数据存在该文件中
|
|
|
- {
|
|
|
- //创建文件
|
|
|
- FileStream fs = File.Create(filename);
|
|
|
- fs.Close();
|
|
|
- var CmdCode = new byte[255];
|
|
|
- using (StreamWriter file = new StreamWriter(filename))
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
{
|
|
|
- //命令字
|
|
|
- ushort ID = Command.ID;
|
|
|
- //类型
|
|
|
- byte Type = Command.Type;
|
|
|
- //命令字
|
|
|
- ushort Cmd = Command.Command;
|
|
|
- CmdCode[0] = (byte)(Cmd >> 8);
|
|
|
- CmdCode[1] = (byte)(Cmd & 0xFF);
|
|
|
- //数据
|
|
|
- for (int i = 0; i < Command.Data.Count; i++)
|
|
|
- {
|
|
|
- CmdCode[2 + 2 * i] = (byte)(Command.Data[i] & 0xFF);
|
|
|
- CmdCode[3 + 2 * i] = (byte)(Command.Data[i] >> 8);
|
|
|
- }
|
|
|
- //写入文件
|
|
|
- file.WriteLine("[" + inputFilename + "]");
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(ID, Type, CmdCode));
|
|
|
+ Console.WriteLine(e);
|
|
|
+ Console.WriteLine("转换失败,输入任意键结束!");
|
|
|
+ Console.ReadKey();
|
|
|
+ return;
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
+ } while (false);
|
|
|
}
|
|
|
+
|
|
|
//输入任意字符退出
|
|
|
Console.WriteLine("转换完成,输入任意键结束!");
|
|
|
Console.ReadKey();
|