using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace YD10测试机 { public partial class Form2 : Form { // 在窗口2中 public delegate void Form2ClosedHandler(); public event Form2ClosedHandler Form2Closed; int form2_index = 0; public Form2( ) { InitializeComponent(); } private void Form2_Load(object sender, EventArgs e) { my_set(); read(); form2_index = this.dataGridView1.Rows.Add(); dataGridView1.Rows[form2_index].Cells[0].Value = "打印名称设置"; dataGridView1.Rows[form2_index].Cells[1].Value = product; dataGridView1.Rows[form2_index].Cells[2].Value =true; for (int i = 0; i < readConfig.Length; i++) { form2_index = this.dataGridView1.Rows.Add(); dataGridView1.Rows[form2_index].Cells[0].Value = readConfig[i].name; dataGridView1.Rows[form2_index].Cells[1].Value = readConfig[i].Svalue; dataGridView1.Rows[form2_index].Cells[2].Value = readConfig[i].status; } for (int i = 0; i < writeConfig.Length; i++) { form2_index = this.dataGridView1.Rows.Add(); dataGridView1.Rows[form2_index].Cells[0].Value = writeConfig[i].name; dataGridView1.Rows[form2_index].Cells[1].Value = writeConfig[i].Svalue; dataGridView1.Rows[form2_index].Cells[2].Value = writeConfig[i].status; } } private void button1_Click(object sender, EventArgs e) { save(); this.Close(); // 关闭当前窗体 } private void save() { JObject setData_jsonObject = new Newtonsoft.Json.Linq.JObject(); setData_jsonObject.Add("打印名称设置", (string)dataGridView1.Rows[0].Cells[1].Value); for (int i = 0; i < readConfig.Length; i++) { setData_jsonObject.Add(readConfig[i].name,(string)dataGridView1.Rows[i+1].Cells[1].Value); } for (int i = 0; i < writeConfig.Length; i++) { setData_jsonObject.Add(writeConfig[i].name,(string)dataGridView1.Rows[i+27].Cells[1].Value); } for (int i = 0; i < readConfig.Length; i++) { setData_jsonObject.Add(readConfig[i].name + "status", readConfig[i].status); } for (int i = 0; i < writeConfig.Length; i++) {; setData_jsonObject.Add(writeConfig[i].name + "status", writeConfig[i].status); } string config_file_str = setData_jsonObject.ToString(); string savePath = Application.StartupPath + @"\\YD10参考信息.json"; System.IO.File.WriteAllText(savePath, config_file_str, Encoding.UTF8); } string product; private void read() { string strLoadConfigFilePath = Application.StartupPath + @"\YD10参考信息.json";//路径 try { using (StreamReader configFile = new StreamReader(strLoadConfigFilePath)) { string str_data_json = configFile.ReadToEnd(); //这一步至关重要 差一点写错了 JObject object_data_prase_json = (JObject)JsonConvert.DeserializeObject(str_data_json); if (object_data_prase_json != null) { product = (string)object_data_prase_json["打印名称设置"]; for (int i = 0; i < readConfig.Length; i++) { readConfig[i].Svalue = (string)object_data_prase_json[readConfig[i].name]; } for (int i = 0; i < writeConfig.Length; i++) { writeConfig[i].Svalue = (string)object_data_prase_json[writeConfig[i].name]; } for (int i = 0; i < readConfig.Length; i++) { readConfig[i].status = (bool)object_data_prase_json[readConfig[i].name + "status"]; } for (int i = 0; i < writeConfig.Length; i++) { writeConfig[i].status = (bool)object_data_prase_json[writeConfig[i].name + "status"]; } } } } catch (Exception) { } } struct myUnitClass2 { public string DID; //DID public string name; //名称 public string threshold; public bool status; public Int64 Ivalue; public bool Bvalue; public string Svalue; public byte[] Fvalue; public string sw; //是pass 还是fail , 用于pass排在上上方 }; myUnitClass2[] readConfig = new myUnitClass2[26]; myUnitClass2[] writeConfig = new myUnitClass2[15]; private void my_set() { //------只读1次----- readConfig[0].DID = "CF00"; readConfig[0].name = "串口诊断协议版本号"; readConfig[0].status = true; readConfig[1].DID = "CF01"; readConfig[1].name = "软件版本号"; readConfig[1].status = true; readConfig[2].DID = "CF02"; readConfig[2].name = "设备IMEI"; readConfig[2].status = true; readConfig[3].DID = "CF03"; readConfig[3].name = "设备ICCID"; readConfig[3].status = true; readConfig[4].DID = "CF04"; readConfig[4].name = "GNSS产品型号"; readConfig[4].status = true; readConfig[5].DID = "CF05"; readConfig[5].name = "GNSS软件版本号"; readConfig[5].status = true; readConfig[6].DID = "CF06"; readConfig[6].name = "GNSS硬件版本号"; readConfig[6].status = true; readConfig[7].DID = "CF07"; readConfig[7].name = "SPI FLASH ID"; readConfig[7].status = true; readConfig[8].DID = "CF08"; readConfig[8].name = "BOOT底层软件版本"; readConfig[8].status = true; readConfig[9].DID = "CF09"; readConfig[9].name = "BOOT升级协议版本"; readConfig[9].status = true; readConfig[10].DID = "CF0A"; readConfig[10].name = "通信协议版本号"; readConfig[10].status = true; readConfig[11].DID = "CF0B"; readConfig[11].name = "备份区软件版本号"; readConfig[11].status = true; readConfig[12].DID = "CF0C"; readConfig[12].name = "OTA零部件编码"; readConfig[12].status = true; //------只读N次----- readConfig[13].DID = "CF80"; readConfig[13].name = "OTA域名"; readConfig[13].status = true; readConfig[14].DID = "CF81"; readConfig[14].name = "拨号状态"; readConfig[14].status = true; readConfig[15].DID = "CF82"; readConfig[15].name = "驻网状态"; readConfig[15].status = true; readConfig[16].DID = "CF83"; readConfig[16].name = "服务器连接状态"; readConfig[16].status = true; readConfig[17].DID = "CF84"; readConfig[17].name = "GNSS定位状态"; readConfig[17].status = true; readConfig[18].DID = "CF85"; readConfig[18].name = "GNSS SNR值"; readConfig[18].status = true; readConfig[19].DID = "CF86"; readConfig[19].name = "RSSI值"; readConfig[19].status = true; readConfig[20].DID = "CF87"; readConfig[20].name = "RSRP值"; readConfig[20].status = true; readConfig[21].DID = "CF88"; readConfig[21].name = "RSRQ值"; readConfig[21].status = true; readConfig[22].DID = "CF89"; readConfig[22].name = "SINR值"; readConfig[22].status = true; readConfig[23].DID = "CF8A"; readConfig[23].name = "ACC管脚电平状态"; readConfig[23].status = true; readConfig[24].DID = "CF8B"; readConfig[24].name = "外电电压值"; readConfig[24].status = true; readConfig[25].DID = "CF8C"; readConfig[25].name = "K线通讯状态"; readConfig[25].status = true; //-----读写---- writeConfig[0].DID = "CF40"; writeConfig[0].name = "硬件版本号"; writeConfig[0].status = true; writeConfig[1].DID = "CF41"; writeConfig[1].name = "产品型号"; writeConfig[1].status = true; writeConfig[2].DID = "CF42"; writeConfig[2].name = "产品识别码"; writeConfig[2].status = true; writeConfig[3].DID = "CF43"; writeConfig[3].name = "产商识别码"; writeConfig[3].status = true; writeConfig[4].DID = "CF44"; writeConfig[4].name = "客户识别码"; writeConfig[4].status = true; // writeConfig[6].DID = "CF45"; // writeConfig[6].name = "生产日十位"; writeConfig[5].DID = "CF46"; writeConfig[5].name = "生产日"; writeConfig[5].status = true; writeConfig[6].DID = "CF47"; writeConfig[6].name = "生产月份"; writeConfig[6].status = true; // writeConfig[7].DID = "CF48"; //writeConfig[7].name = "生产年份十位"; writeConfig[7].DID = "CF49"; writeConfig[7].name = "生产年份"; writeConfig[7].status = true; writeConfig[8].DID = "CF4A"; writeConfig[8].name = "流水号"; writeConfig[8].status = true; writeConfig[9].DID = "CF4B"; writeConfig[9].name = "服务器域名"; writeConfig[9].status = true; writeConfig[10].DID = "CF4C"; writeConfig[10].name = "服务器端口号"; writeConfig[10].status = true; writeConfig[11].DID = "CF4D"; writeConfig[11].name = "外电电压AD比列值"; writeConfig[11].status = true; writeConfig[12].DID = "CF4E"; writeConfig[12].name = "物料编码"; writeConfig[12].status = true; writeConfig[13].DID = "CF4F"; writeConfig[13].name = "供应商编码"; writeConfig[13].status = true; writeConfig[14].DID = "CF50"; writeConfig[14].name = "批次号"; writeConfig[14].status = true; } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { for (int i = 0; i < readConfig.Length; i++) { if ((bool)dataGridView1.Rows[i+1].Cells[2].EditedFormattedValue == true) { readConfig[i].status = true; } else { readConfig[i].status = false; } } for (int i = 0; i < writeConfig.Length; i++) { if ((bool)dataGridView1.Rows[i+27].Cells[2].EditedFormattedValue == true) { writeConfig[i].status = true; } else { writeConfig[i].status = false; } } } private void Form2_FormClosing(object sender, FormClosingEventArgs e) { Form2Closed?.Invoke(); } } }