Version.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Windows.Forms;
  12. using static Welling_Motor_Debug_Tool.mainForm;
  13. namespace Welling_Motor_Debug_Tool
  14. {
  15. public partial class Version : Form
  16. {
  17. //修改记录
  18. string ChangeLog = "修改记录:\r\n" +
  19. "V" + mainForm.Version + "\r\n" +
  20. "1,参数生成界面后灯模式增加模式7和模式8;\r\n" +
  21. "2,参数检验时不对力矩传感器零点值和标定值与写入参数对比校验;\r\n" +
  22. "3,参数检验时无规律出现参数校验失败提示,增加异常提示。\r\n" +
  23. "\r\n" +
  24. "V2.5.4\r\n" +
  25. "1,加快参数写入和读取时间;\r\n" +
  26. "2,量产测试增加样机测试功能,勾选配置菜单里样机测试时不用选择配置文件,标签用两个空格把型号和SN分割;\r\n" +
  27. "3,导出参数增加重发机制;\r\n" +
  28. "4,测试结束自动断开串口,测试开始时自动连接串口;\r\n" +
  29. "5,增加联动装置盒设置功能。\r\n" +
  30. "\r\n" +
  31. "V2.5.3\r\n" +
  32. "1,生成参数功能增加VP电机;\r\n" +
  33. "2,电机类型增加中置VP电机,并修改对应的配置文件;\r\n" +
  34. "3,登录账户增加中置VP电机,测试时远程存储路径同步调整为MV_VP_TEST;\r\n" +
  35. "4,增加小牙盘标签格式;\r\n" +
  36. "5,针对小牙盘力矩传感器动态标定,发送加载指令后延迟2s读取标定数据;\r\n" +
  37. "6,针对中置电机基础功能检验时判断踏频值。\r\n" +
  38. "\r\n" +
  39. "V2.5.2\r\n" +
  40. "1,踏频检测记录窗口内最大值;\r\n" +
  41. "2,速度传感器检测等待时间改为5s。\r\n" +
  42. "\r\n" +
  43. "V2.5.1\r\n" +
  44. "1,解决参数检验时力矩传感器参数判断错误的问题;\r\n" +
  45. "2,增加离线使用授权以及有效期判断。\r\n" +
  46. "\r\n" +
  47. "V2.5.0\r\n" +
  48. "1,增加力矩传感器手动标定实时检验,超范围时弹出提示;\r\n" +
  49. "2,增加拓展功能配置,支持读取和写入;\r\n" +
  50. "3,解决部分情况500ms定时器停止的问题;\r\n" +
  51. "4,增加故障日志地址读取、硬件版本HW写入、客户定制编号写入(用于Boot校验);\r\n" +
  52. "5,运行信息增加预留的显示内容和GearBox信息;\r\n" +
  53. "6,轮毂控制器测试增加新编码规则。\r\n" +
  54. "\r\n" +
  55. "V2.4.0\r\n" +
  56. "1,生成配置参数时增加导出EXCEL和PDF功能;\r\n" +
  57. "2,剎把检测前判断电机是否停止,避免误判;\r\n" +
  58. "3,参数检验增加位置校准判断;\r\n" +
  59. "4,配置模式下进入Walk时自动调节转速到100%。\r\n" +
  60. "\r\n" +
  61. "V2.3.0\r\n" +
  62. "1,针对位置磁环增加校准功能,支持手动校准和量产模式自动校准;\r\n" +
  63. "2,启动时增加网络选择,勾选下次不启动时存储Server文件,下次启动从Server文件读取服务器配置,Config文件中去掉服务器配置;\r\n" +
  64. "3,导出文件时增加整车参数2和用户骑行参数,修改量产文件转换工具;\r\n" +
  65. "4,参数检验测试结束后,增加导出电机参数并记录的功能;\r\n" +
  66. "5,解决离线模式无法进入参数生成界面问题。\r\n" +
  67. "\r\n" +
  68. "V2.2.2\r\n" +
  69. "1,增加自动更新按钮,解决离线使用时打开慢的问题;\r\n" +
  70. "2,删除发送进入5S协议指令,新版本UART控制器不需要配置协议,考虑还原提高兼容性;\r\n" +
  71. "3,部分工序增加延时,解决通信异常问题;\r\n" +
  72. "4,量产测试和检验模式增加重发机制;\r\n" +
  73. "5,控制参数预留1低8位作为转把定速巡航开关,仪表用户参数增加转把定速巡航开关;\r\n" +
  74. "6, 增加指令窗口,可显示接收和发送的数据;\r\n" +
  75. "7,解决导入本地记录文件时,自定义字符串以\\0结尾高级参数界面异常问题,目前关闭自定义字符串指令。\r\n" +
  76. "\r\n" +
  77. "V2.2.1\r\n" +
  78. "1,优化修改配置模式时重复发送指令的问题;\r\n" +
  79. "2,解决刹车检测报错的问题;\r\n" +
  80. "3, 解决力矩传感器测试结果不显示问题。\r\n" +
  81. "\r\n" +
  82. "V2.2.0\r\n" +
  83. "1,优化新增协议内容;\r\n" +
  84. "2,增加协议类型选择,支持CAN和UART;\r\n" +
  85. "3,针对UART控制器在量产测试过程中增加5S协议设定和联动装置盒波特率设定,以正确接收UART控制器数据和Boot版本信息;\r\n" +
  86. "4,基础功能测试控制电机启动由修改运行模式改为Walk模式;\r\n" +
  87. "5,量产功能测试增加MOS内阻校准环节,支持可选;\r\n" +
  88. "6,增加流水号记录。\r\n" +
  89. "\r\n" +
  90. "V2.1.9\r\n" +
  91. "1,增加整车信息2、用户骑行参数界面,支持上位机读写;\r\n" +
  92. "2,增加车架ODO里程写入和读取;\r\n" +
  93. "3,增加产品标签写入,支持32位字符;\r\n" +
  94. "4,生成参数界面可选择HUB_FCT,支持仅导出到本地;\r\n" +
  95. "5,FCT治具测试账户登录后,测试路径自动改为HUB_FCT_Test;\r\n" +
  96. "6,增加删除指定配置文件和样机测试记录文件,支持文件夹递归删除。\r\n" +
  97. "\r\n" +
  98. "V2.1.8\r\n" +
  99. "1,限制FCT治具测试账户需要联网使用;\r\n" +
  100. "2,量产测试和检验模式下,双击配置文件可删除选中的配置文件。\r\n" +
  101. "\r\n" +
  102. "V2.1.7\r\n" +
  103. "1,解决系统显示缩放后,截图显示不完全的问题;\r\n" +
  104. "2,允许离线使用是关闭网络定时检测;\r\n" +
  105. "3,定时检测网络断开时不自动关闭,此时不允许使用,等待网络恢复;\r\n" +
  106. "4,启动登录密码错误时不自动关闭,重新进入登录;\r\n" +
  107. "5,部分提示框修改为自动关闭;\r\n" +
  108. "6,增加读取本机信息功能;\r\n" +
  109. "7,启动时自动上传登录日志,包含本机信息。\r\n" +
  110. "\r\n" +
  111. "V2.1.6\r\n" +
  112. "1,修改控制器内阻校准指令,增加写入存储标志;\r\n" +
  113. "2,参数生成界面增加导入样机测试记录的文件功能;\r\n" +
  114. "3,参数生成界面增加锁,防止误触。\r\n"
  115. ;
  116. //存储路径文件
  117. LocalInfo localInfo = new LocalInfo();
  118. //服务器配置
  119. string IP, Port, User, PassWD;
  120. //FTP
  121. ftp myFtp = new ftp();
  122. public Version()
  123. {
  124. InitializeComponent();
  125. }
  126. private void Version_Load(object sender, EventArgs e)
  127. {
  128. //更新版本信息
  129. label_Ver.Text = "版本: V" + mainForm.Version;
  130. label_BT.Text = "编译时间:" + System.IO.File.GetLastWriteTime(this.GetType().Assembly.Location).ToString("yyyy-MM-dd HH:mm:ss");
  131. //修改日志
  132. richTextBox_Log.Text = "";
  133. richTextBox_Log.AppendText(ChangeLog);
  134. //网络配置
  135. IP = mainform1.ServerIP;
  136. Port = mainform1.ServerPort;
  137. User = mainform1.ServerUser;
  138. PassWD = mainform1.ServerPassWd;
  139. myFtp.FtpOption(IP, Port, User, PassWD, "admin", "ttium_admin");
  140. }
  141. private void button_CheckVersion_Click(object sender, EventArgs e)
  142. {
  143. //离线时直接退出
  144. if (mainform1.OfflineFlag == true)
  145. {
  146. MessageBoxTimeOut.Show("网络断开,检查失败", "提示", 1000, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  147. return;
  148. }
  149. //检查网络状态
  150. if (myFtp.CheckFtp() == false)
  151. {
  152. MessageBoxTimeOut.Show("网络断开,检查失败", "提示", 1000, MessageBoxButtons.OK, MessageBoxIcon.Warning);
  153. return;
  154. }
  155. else
  156. {
  157. //检查本地文件删除
  158. if (System.IO.File.Exists(localInfo.LocalPath + "\\Version"))
  159. System.IO.File.Delete(localInfo.LocalPath + "\\Version");
  160. //读取最新版本号
  161. myFtp.DownloadFile("/Tools/Welling_Motor_Debug_Tool/Version", localInfo.LocalPath);
  162. StreamReader objReader = new StreamReader(localInfo.LocalPath + "\\Version");
  163. string sLine = "";
  164. ArrayList arrText = new ArrayList();//创建一个动态数组
  165. while (sLine != null)
  166. {
  167. sLine = objReader.ReadLine();
  168. arrText.Add(sLine);
  169. }
  170. objReader.Close();
  171. System.IO.File.Delete(localInfo.LocalPath + "\\Version");
  172. //检查是否有最新版本
  173. string[] VerOld = mainForm.Version.Trim().Split('.');
  174. string[] VerNew = arrText[0].ToString().Trim().Split('.');
  175. int VerOld_int = Convert.ToInt32(VerOld[0]) * 10000 + Convert.ToInt32(VerOld[1].PadLeft(2, '0')) * 100 + Convert.ToInt32(VerOld[2].PadLeft(2, '0'));
  176. int VerNew_int = Convert.ToInt32(VerNew[0]) * 10000 + Convert.ToInt32(VerNew[1].PadLeft(2, '0')) * 100 + Convert.ToInt32(VerNew[2].PadLeft(2, '0'));
  177. if (VerNew_int <= VerOld_int)
  178. {
  179. //版本已是最新,跳出
  180. MessageBox.Show("版本已是最新", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  181. return;
  182. }
  183. //下载最新版本
  184. string SavePath = Directory.GetCurrentDirectory();
  185. string[] FileList = myFtp.GetFileNameList("/Tools/Welling_Motor_Debug_Tool");
  186. foreach (string file in FileList)
  187. {
  188. if (file.Contains(".exe"))
  189. {
  190. myFtp.DownloadFile("/Tools/Welling_Motor_Debug_Tool/" + file, SavePath);
  191. MessageBox.Show("最新版本下载完成,请手动删除旧版本\r\n最新版本:" + file, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  192. System.Environment.Exit(0);
  193. }
  194. }
  195. }
  196. }
  197. }
  198. }