You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

357 lines
12 KiB
C#

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();
}
}
}