|
@@ -80,7 +80,7 @@ namespace ConsoleApp2
|
|
|
static string CmdCode_To_CmdSave(byte[] Code)
|
|
|
{
|
|
|
string result = "";
|
|
|
- byte[] input = new byte[47];
|
|
|
+ byte[] input = new byte[100];
|
|
|
UInt32 crc_rel = 0;
|
|
|
ushort DataLen = 0;
|
|
|
input[0] = 0x55; input[1] = 0xAA; input[2] = 0x07; input[3] = 0x51; input[4] = 0x16;
|
|
@@ -164,21 +164,19 @@ namespace ConsoleApp2
|
|
|
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("[用户参数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);
|
|
|
+ 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)
|
|
|
{
|
|
@@ -188,7 +186,7 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
DicRowNum[item.Key] = arrText.IndexOf(cmd);
|
|
|
break;
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//开始遍历,转换每条指令对应的数据
|
|
@@ -206,9 +204,36 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
//写入命令功能
|
|
|
file.WriteLine(index);
|
|
|
- var CmdCode = new byte[34];
|
|
|
+ var CmdCode = new byte[100];
|
|
|
+ Array.Clear(CmdCode, 0, CmdCode.Length);
|
|
|
switch (index)
|
|
|
{
|
|
|
+ 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(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(CmdCode));
|
|
|
+ break;
|
|
|
+ }
|
|
|
case "[校验码]":
|
|
|
{
|
|
|
CmdCode[0] = 0x11;
|
|
@@ -218,6 +243,7 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
CmdCode[2 + i] = (byte)KeyString[i];
|
|
|
}
|
|
|
+ //写入文件
|
|
|
file.WriteLine(CmdCode_To_CmdSave(CmdCode));
|
|
|
break;
|
|
|
}
|
|
@@ -230,6 +256,7 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
}
|
|
|
+ //写入文件
|
|
|
file.WriteLine(CmdCode_To_CmdSave(CmdCode));
|
|
|
break;
|
|
|
}
|
|
@@ -242,6 +269,7 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
}
|
|
|
+ //写入文件
|
|
|
file.WriteLine(CmdCode_To_CmdSave(CmdCode));
|
|
|
break;
|
|
|
}
|
|
@@ -254,137 +282,7 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
CmdCode[2 + i] = (byte)UserInfo1String[i];
|
|
|
}
|
|
|
- file.WriteLine(CmdCode_To_CmdSave(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(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(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(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(CmdCode));
|
|
|
break;
|
|
|
}
|
|
@@ -407,105 +305,358 @@ namespace ConsoleApp2
|
|
|
{
|
|
|
CmdCode[18 + i] = (byte)MAC_Info[i];
|
|
|
}
|
|
|
+ //写入文件
|
|
|
file.WriteLine(CmdCode_To_CmdSave(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(CmdCode));
|
|
|
- break;
|
|
|
- }
|
|
|
- case "[启动值]":
|
|
|
+ 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);
|
|
|
+ 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);
|
|
|
+ //写入文件
|
|
|
file.WriteLine(CmdCode_To_CmdSave(CmdCode));
|
|
|
break;
|
|
|
}
|
|
|
- case "[用户参数2]":
|
|
|
+ case "[整车参数]":
|
|
|
{
|
|
|
- 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;
|
|
|
+ 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);
|
|
|
+ //写入文件
|
|
|
file.WriteLine(CmdCode_To_CmdSave(CmdCode));
|
|
|
break;
|
|
|
}
|
|
|
- case "[三力矩标定系数1]":
|
|
|
+ case "[力矩传感器参数]":
|
|
|
{
|
|
|
- CmdCode[0] = 0x34;
|
|
|
- CmdCode[1] = 0x02;
|
|
|
- CmdCode[2] = 0x01;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[3] = (byte)DataTemp;
|
|
|
+ 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(CmdCode));
|
|
|
break;
|
|
|
}
|
|
|
- case "[三力矩标定系数2]":
|
|
|
+ case "[其它传感器参数]":
|
|
|
{
|
|
|
- CmdCode[0] = 0x34;
|
|
|
- CmdCode[1] = 0x02;
|
|
|
- CmdCode[2] = 0x02;
|
|
|
- ushort DataTemp;
|
|
|
- DataTemp = Convert.ToUInt16(arrText[rowNum + 1].ToString().Split(',')[1]);
|
|
|
- CmdCode[3] = (byte)DataTemp;
|
|
|
+ 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(CmdCode));
|
|
|
break;
|
|
|
}
|
|
|
- case "[三力矩标定系数3]":
|
|
|
+ case "[助力参数]":
|
|
|
{
|
|
|
- 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(CmdCode));
|
|
|
+ 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);
|
|
|
+ //转矩曲线1-15,踏频曲线1-5,按照前5条同时写力矩和踏频,后9条写力矩和踏频5
|
|
|
+ for (ushort i = 1; i <= 15; i++)
|
|
|
+ {
|
|
|
+ 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)(uDataTemp >> 8);
|
|
|
+ CmdCode[16] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[17] = (byte)(uDataTemp >> 24);
|
|
|
+ //转矩曲线b
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 2)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[18] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[19] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[20] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[21] = (byte)(uDataTemp >> 24);
|
|
|
+ //转矩曲线c
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 3)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[22] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[23] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[24] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[25] = (byte)(uDataTemp >> 24);
|
|
|
+ //转矩曲线d
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 4)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[26] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[27] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[28] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[29] = (byte)(uDataTemp >> 24);
|
|
|
+ if (i <= 5)
|
|
|
+ {
|
|
|
+ //踏频曲线a
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 61)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[30] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[31] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[32] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[33] = (byte)(uDataTemp >> 24);
|
|
|
+ //踏频曲线b
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 62)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[34] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[35] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[36] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[37] = (byte)(uDataTemp >> 24);
|
|
|
+ //踏频曲线c
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 63)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[38] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[39] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[40] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[41] = (byte)(uDataTemp >> 24);
|
|
|
+ //踏频曲线d
|
|
|
+ Data32 = Convert.ToInt32(arrText[rowNum + (4 * i + 64)].ToString().Split(',')[1]);
|
|
|
+ CmdCode[42] = (byte)(Data32 & 0xFF);
|
|
|
+ CmdCode[43] = (byte)(uDataTemp >> 8);
|
|
|
+ CmdCode[44] = (byte)(uDataTemp >> 16);
|
|
|
+ CmdCode[45] = (byte)(uDataTemp >> 24);
|
|
|
+ }
|
|
|
+ //写入文件
|
|
|
+ file.WriteLine(CmdCode_To_CmdSave(CmdCode));
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
default: break;
|
|
@@ -513,12 +664,6 @@ namespace ConsoleApp2
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
}
|