三轴角度校准

This commit is contained in:
MoYue 2023-04-25 14:24:53 +08:00
parent 0fc800276e
commit b354dad951
2 changed files with 2813 additions and 12 deletions

View File

@ -29,6 +29,9 @@ namespace MonitoringTechnology.Ble
{ {
public class BleDevice : ObservableObject public class BleDevice : ObservableObject
{ {
//获取当前程序运行路径
private string Save_Path = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"数据记录\";
private readonly DeviceInformation _deviceInfo; private readonly DeviceInformation _deviceInfo;
private BluetoothLEDevice _device; private BluetoothLEDevice _device;
private GattCharacteristic CharacteristicWrite; private GattCharacteristic CharacteristicWrite;
@ -341,7 +344,9 @@ namespace MonitoringTechnology.Ble
//string _message = tools.HexStringToString(rec_16, Encoding.Default).Replace("\r\n", ""); //string _message = tools.HexStringToString(rec_16, Encoding.Default).Replace("\r\n", "");
//以txt文档的形式存储接收到的数据 //以txt文档的形式存储接收到的数据
tools.AddLgoToTXT(FileModel.File_Name + FileModel.File_Time.ToString("yyyy-MM-dd") + ".txt", FileModel.File_Path + FileModel.File_Time.ToString("yyyy-MM-dd") + @"\", _localtime + ": " + rec_16 + "\r\n"); //tools.AddLgoToTXT(FileModel.File_Name + FileModel.File_Time.ToString("yyyy-MM-dd") + ".txt", FileModel.File_Path + FileModel.File_Time.ToString("yyyy-MM-dd") + @"\", _localtime + ": " + rec_16 + "\r\n");
tools.AddLgoToTXT("原始报文.txt", Save_Path + System.DateTime.Now.ToString("yyyy_MM_dd") + @"\", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ---- " + rec_16 + "\r\n");
//获取当前系统时间 //获取当前系统时间
DateTime time_DataBase = DateTime.Now; DateTime time_DataBase = DateTime.Now;
@ -447,13 +452,77 @@ namespace MonitoringTechnology.Ble
monitoringSensorModel._angularVelocity_Z = tools.bytetofloat(byteList, 44); monitoringSensorModel._angularVelocity_Z = tools.bytetofloat(byteList, 44);
//角度X 48,49,50,51 //角度X 48,49,50,51
monitoringSensorModel.degrees_x = tools.bytetofloat(byteList, 48); float X = tools.bytetofloat(byteList, 48);
if (X > 0)
{
monitoringSensorModel.degrees_x = X * 1.035F;
}
else
{
monitoringSensorModel.degrees_x = X * 1.088F;
}
//monitoringSensorModel.degrees_x = tools.bytetofloat(byteList, 48) * 1.02F;
//角度Y 52,53,54,55 //角度Y 52,53,54,55
monitoringSensorModel.degrees_y = tools.bytetofloat(byteList, 52); float Y = tools.bytetofloat(byteList, 52);
if (Y > 92)
{
monitoringSensorModel.degrees_y = Y * 1.0172F;
if (monitoringSensorModel.degrees_y > 180F)
{
monitoringSensorModel.degrees_y = 180F;
}
}
else if (Y < -91)
{
monitoringSensorModel.degrees_y = Y * 0.9829F;
if (monitoringSensorModel.degrees_y < -175F)
{
monitoringSensorModel.degrees_y = Y * 1.0172F;
}
if (monitoringSensorModel.degrees_y < -180F)
{
monitoringSensorModel.degrees_y = -180F;
}
}
else
{
monitoringSensorModel.degrees_y = Y;
}
// monitoringSensorModel.degrees_y = tools.bytetofloat(byteList, 52) * 1.0172F;
//角度Z 56,57,58,59 //角度Z 56,57,58,59
monitoringSensorModel.degrees_z = tools.bytetofloat(byteList, 56); //monitoringSensorModel.degrees_z = tools.bytetofloat(byteList, 56);
float Z = tools.bytetofloat(byteList, 56);
if ((Z > 0 && Z < 2) || (Z > -2F && Z < 0F))
{
monitoringSensorModel.degrees_z = 0F;
}
else if (Z > 88F && Z < 92F)
{
monitoringSensorModel.degrees_z = 90F;
}
else if (Z > 178F && Z < 182F)
{
monitoringSensorModel.degrees_z = 180F;
}
else if (Z > -92F && Z < -88F)
{
monitoringSensorModel.degrees_z = -90F;
}
else if (Z > -182F && Z < -178F)
{
monitoringSensorModel.degrees_z = -180F;
}
else
{
monitoringSensorModel.degrees_z = Z;
}
//电池电压 60,61,62,63 //电池电压 60,61,62,63
monitoringSensorModel._batteryVoltage = tools.bytetofloat(byteList, 60); monitoringSensorModel._batteryVoltage = tools.bytetofloat(byteList, 60);
@ -538,7 +607,7 @@ namespace MonitoringTechnology.Ble
localDataAccess.write("INSERT INTO monitoringsensormodel(F_CreateDate,F_DatetimeSensor,F_Tem,F_Hum,F_Pressure,F_AccelerationX,F_AccelerationY,F_AccelerationZ,F_AngularVelocityX,F_AngularVelocityY,F_AngularVelocityZ,F_DegreesX,F_DegreesY,F_DegreesZ,F_BatteryVoltage,F_ChargingCurrent,F_State) VALUES('" + monitoringSensorModel.f_CreateDate + "','" + monitoringSensorModel._datetime_Sensor + "','" + monitoringSensorModel._Tem + "','" + monitoringSensorModel._Hum + "','" + monitoringSensorModel._pressure + "','" + monitoringSensorModel._acceleration_X + "','" + monitoringSensorModel._acceleration_Y + "','" + monitoringSensorModel._acceleration_Z + "','" + monitoringSensorModel._angularVelocity_X + "','" + monitoringSensorModel._angularVelocity_Y + "','" + monitoringSensorModel._angularVelocity_Z + "','" + monitoringSensorModel.degrees_x + "','" + monitoringSensorModel.degrees_y + "','" + monitoringSensorModel.degrees_z + "','" + monitoringSensorModel._batteryVoltage + "','" + monitoringSensorModel._ChargingCurrent + "','" + monitoringSensorModel._State + "');"); localDataAccess.write("INSERT INTO monitoringsensormodel(F_CreateDate,F_DatetimeSensor,F_Tem,F_Hum,F_Pressure,F_AccelerationX,F_AccelerationY,F_AccelerationZ,F_AngularVelocityX,F_AngularVelocityY,F_AngularVelocityZ,F_DegreesX,F_DegreesY,F_DegreesZ,F_BatteryVoltage,F_ChargingCurrent,F_State) VALUES('" + monitoringSensorModel.f_CreateDate + "','" + monitoringSensorModel._datetime_Sensor + "','" + monitoringSensorModel._Tem + "','" + monitoringSensorModel._Hum + "','" + monitoringSensorModel._pressure + "','" + monitoringSensorModel._acceleration_X + "','" + monitoringSensorModel._acceleration_Y + "','" + monitoringSensorModel._acceleration_Z + "','" + monitoringSensorModel._angularVelocity_X + "','" + monitoringSensorModel._angularVelocity_Y + "','" + monitoringSensorModel._angularVelocity_Z + "','" + monitoringSensorModel.degrees_x + "','" + monitoringSensorModel.degrees_y + "','" + monitoringSensorModel.degrees_z + "','" + monitoringSensorModel._batteryVoltage + "','" + monitoringSensorModel._ChargingCurrent + "','" + monitoringSensorModel._State + "');");
_message = "状态数据获取成功: 数据上传时间: " + monitoringSensorModel._datetime_Sensor + " 温度:" + monitoringSensorModel._Tem + "℃ 湿度:" + monitoringSensorModel._Hum + "% 气压:" + monitoringSensorModel._pressure + "KPa 俯仰角" + monitoringSensorModel._acceleration_X + "° 横滚角" + monitoringSensorModel._acceleration_Y + "° 偏航角" + monitoringSensorModel._acceleration_Z + "° 角速度X" + monitoringSensorModel._angularVelocity_X + "m/s² 角速度Y" + monitoringSensorModel._angularVelocity_Y + "m/s² 角速度Z" + monitoringSensorModel._angularVelocity_Z + "m/s² 度X" + monitoringSensorModel.degrees_x + "rad/s 角度Y" + monitoringSensorModel.degrees_y + "rad/s 角度Z" + monitoringSensorModel.degrees_z + "rad/s 电池电压:" + monitoringSensorModel._batteryVoltage + "V 充电电流:" + monitoringSensorModel._ChargingCurrent + "A 充电状态:" + monitoringSensorModel._State + " 蓝牙速率:" + LYSpeed +" Mbps"; _message = "状态数据获取成功: 数据上传时间: " + monitoringSensorModel._datetime_Sensor + " 温度:" + monitoringSensorModel._Tem + "℃ 湿度:" + monitoringSensorModel._Hum + "% 气压:" + monitoringSensorModel._pressure + "KPa 加速度X" + monitoringSensorModel._acceleration_X + "rad/s 加速度Y" + monitoringSensorModel._acceleration_Y + "rad/s 加速度Z" + monitoringSensorModel._acceleration_Z + "rad/s 角速度X" + monitoringSensorModel._angularVelocity_X + "m/s² 角速度Y" + monitoringSensorModel._angularVelocity_Y + "m/s² 角速度Z" + monitoringSensorModel._angularVelocity_Z + "m/s² 俯仰角:" + monitoringSensorModel.degrees_x + "° 横滚角:" + monitoringSensorModel.degrees_y + "° 偏航角:" + monitoringSensorModel.degrees_z + 电池电压:" + monitoringSensorModel._batteryVoltage + "V 充电电流:" + monitoringSensorModel._ChargingCurrent + "A 充电状态:" + monitoringSensorModel._State + " 蓝牙速率:" + LYSpeed + " Mbps";
ReceiveValueChangedChanged(null, _message); ReceiveValueChangedChanged(null, _message);
break; break;
@ -795,13 +864,80 @@ namespace MonitoringTechnology.Ble
monitoringSensorModel._angularVelocity_Z = tools.bytetofloat(byteList, 42); monitoringSensorModel._angularVelocity_Z = tools.bytetofloat(byteList, 42);
//角度X 46,47,48,49 //角度X 46,47,48,49
monitoringSensorModel.degrees_x = tools.bytetofloat(byteList, 46); //monitoringSensorModel.degrees_x = tools.bytetofloat(byteList, 46);
//角度Y 50,51,52,53 //角度Y 50,51,52,53
monitoringSensorModel.degrees_y = tools.bytetofloat(byteList, 50); // monitoringSensorModel.degrees_y = tools.bytetofloat(byteList, 50);
//角度X 48,49,50,51
float X_History = tools.bytetofloat(byteList, 46);
if (X_History > 0)
{
monitoringSensorModel.degrees_x = X_History * 1.035F;
}
else
{
monitoringSensorModel.degrees_x = X_History * 1.088F;
}
//monitoringSensorModel.degrees_x = tools.bytetofloat(byteList, 48) * 1.02F;
//角度Y 52,53,54,55
float Y_History = tools.bytetofloat(byteList, 50);
if (Y_History > 92)
{
monitoringSensorModel.degrees_y = Y_History * 1.0172F;
if (monitoringSensorModel.degrees_y > 180F)
{
monitoringSensorModel.degrees_y = 180F;
}
}
else if (Y_History < -91)
{
monitoringSensorModel.degrees_y = Y_History * 0.9829F;
if (monitoringSensorModel.degrees_y < -175F)
{
monitoringSensorModel.degrees_y = Y_History * 1.0172F;
}
if (monitoringSensorModel.degrees_y < -180F)
{
monitoringSensorModel.degrees_y = -180F;
}
}
else
{
monitoringSensorModel.degrees_y = Y_History;
}
//角度Z 54,55,56,57 //角度Z 54,55,56,57
monitoringSensorModel.degrees_z = tools.bytetofloat(byteList, 54); //monitoringSensorModel.degrees_z = tools.bytetofloat(byteList, 54);
float Z_History = tools.bytetofloat(byteList, 56);
if ((Z_History > 0 && Z_History < 2) || (Z_History > -2F && Z_History < 0F))
{
monitoringSensorModel.degrees_z = 0F;
}
else if (Z_History > 88F && Z_History < 92F)
{
monitoringSensorModel.degrees_z = 90F;
}
else if (Z_History > 178F && Z_History < 182F)
{
monitoringSensorModel.degrees_z = 180F;
}
else if (Z_History > -92F && Z_History < -88F)
{
monitoringSensorModel.degrees_z = -90F;
}
else if (Z_History > -182F && Z_History < -178F)
{
monitoringSensorModel.degrees_z = -180F;
}
else
{
monitoringSensorModel.degrees_z = Z_History;
}
//电池电压 58,59.60,61 //电池电压 58,59.60,61
monitoringSensorModel._batteryVoltage = tools.bytetofloat(byteList, 58); monitoringSensorModel._batteryVoltage = tools.bytetofloat(byteList, 58);
@ -909,12 +1045,14 @@ namespace MonitoringTechnology.Ble
#endregion #endregion
_message = "日期:" + monitoringSensorModel._datetime_Sensor + "\r\n" + " 温度:" + monitoringSensorModel._Tem + "℃ 湿度:" + monitoringSensorModel._Hum + "% 气压:" + monitoringSensorModel._pressure + "KPa " + "\r\n" + " 俯仰角" + monitoringSensorModel._acceleration_X + "° 横滚角" + monitoringSensorModel._acceleration_Y + "° 偏航角" + monitoringSensorModel._acceleration_Z + "°" + "\r\n" + " 角速度X" + monitoringSensorModel._angularVelocity_X + "m/s² 角速度Y" + monitoringSensorModel._angularVelocity_Y + "m/s² 角速度Z" + monitoringSensorModel._angularVelocity_Z + "m/s² " + "\r\n" + " 度X" + monitoringSensorModel.degrees_x + "rad/s 角度Y" + monitoringSensorModel.degrees_y + "rad/s 角度Z" + monitoringSensorModel.degrees_z + "rad/s " + "\r\n" + " 电池电压:" + monitoringSensorModel._batteryVoltage + "V 充电电流:" + monitoringSensorModel._ChargingCurrent + "A 充电状态:" + monitoringSensorModel._State + "\r\n" + " 温度-主系统:" + monitoringSensorModel.tem + "℃ 湿度-主系统:" + monitoringSensorModel.hum + "% 气压 -主系统 :" + monitoringSensorModel.preeure + "KPa" + "\r\n" + " 电压1 -主系统:" + monitoringSensorModel.voltage1 + "V 电压2 -主系统:" + monitoringSensorModel.voltage2 + "V 电压3 -主系统:" + monitoringSensorModel.voltage3 + "V" + "\r\n" + " 电压4 -主系统:" + monitoringSensorModel.voltage4 + "V 电压5 -主系统:" + monitoringSensorModel.voltage5 + "V 电压6 -主系统:" + monitoringSensorModel.voltage6 + "V" + "\r\n" + " 电压7 -主系统:" + monitoringSensorModel.voltage7 + "V 电压8 -主系统:" + monitoringSensorModel.voltage8 + "V 电压9 -主系统:" + monitoringSensorModel.voltage9 + "V" + "\r\n" + " 电压10 -主系统:" + monitoringSensorModel.voltage10 + "V" + "\r\n" + " 电流1 -主系统:" + monitoringSensorModel.current1 + "A 电流2 -主系统:" + monitoringSensorModel.current2 + "A 电流3 -主系统:" + monitoringSensorModel.current3 + "A" + "\r\n" + " 电流4 -主系统:" + monitoringSensorModel.current4 + "A 电流5 -主系统:" + monitoringSensorModel.current5 + "A 电流6 -主系统:" + monitoringSensorModel.current6 + "A" + "\r\n" + " 电流7 -主系统:" + monitoringSensorModel.current7 + "A 电流8 -主系统:" + monitoringSensorModel.current8 + "A 电流9 -主系统:" + monitoringSensorModel.current9 + "A" + "\r\n" + " 电流10 -主系统:" + monitoringSensorModel.current10 + "A" + "\r\n"; _message = "日期:" + monitoringSensorModel._datetime_Sensor + "\r\n" + " 温度:" + monitoringSensorModel._Tem + "℃ 湿度:" + monitoringSensorModel._Hum + "% 气压:" + monitoringSensorModel._pressure + "KPa " + "\r\n" + " 加速度X" + monitoringSensorModel._acceleration_X + "rad/s 加速度Y" + monitoringSensorModel._acceleration_Y + "rad/s 加速度Z" + monitoringSensorModel._acceleration_Z + "rad/s" + "\r\n" + " 角速度X" + monitoringSensorModel._angularVelocity_X + "m/s² 角速度Y" + monitoringSensorModel._angularVelocity_Y + "m/s² 角速度Z" + monitoringSensorModel._angularVelocity_Z + "m/s² " + "\r\n" + " 俯仰角:" + monitoringSensorModel.degrees_x + "° 横滚角:" + monitoringSensorModel.degrees_y + "° 偏航角:" + monitoringSensorModel.degrees_z + " + "\r\n" + " 电池电压:" + monitoringSensorModel._batteryVoltage + "V 充电电流:" + monitoringSensorModel._ChargingCurrent + "A 充电状态:" + monitoringSensorModel._State + "\r\n" + " 温度-主系统:" + monitoringSensorModel.tem + "℃ 湿度-主系统:" + monitoringSensorModel.hum + "% 气压 -主系统 :" + monitoringSensorModel.preeure + "KPa" + "\r\n" + " 电压1 -主系统:" + monitoringSensorModel.voltage1 + "V 电压2 -主系统:" + monitoringSensorModel.voltage2 + "V 电压3 -主系统:" + monitoringSensorModel.voltage3 + "V" + "\r\n" + " 电压4 -主系统:" + monitoringSensorModel.voltage4 + "V 电压5 -主系统:" + monitoringSensorModel.voltage5 + "V 电压6 -主系统:" + monitoringSensorModel.voltage6 + "V" + "\r\n" + " 电压7 -主系统:" + monitoringSensorModel.voltage7 + "V 电压8 -主系统:" + monitoringSensorModel.voltage8 + "V 电压9 -主系统:" + monitoringSensorModel.voltage9 + "V" + "\r\n" + " 电压10 -主系统:" + monitoringSensorModel.voltage10 + "V" + "\r\n" + " 电流1 -主系统:" + monitoringSensorModel.current1 + "A 电流2 -主系统:" + monitoringSensorModel.current2 + "A 电流3 -主系统:" + monitoringSensorModel.current3 + "A" + "\r\n" + " 电流4 -主系统:" + monitoringSensorModel.current4 + "A 电流5 -主系统:" + monitoringSensorModel.current5 + "A 电流6 -主系统:" + monitoringSensorModel.current6 + "A" + "\r\n" + " 电流7 -主系统:" + monitoringSensorModel.current7 + "A 电流8 -主系统:" + monitoringSensorModel.current8 + "A 电流9 -主系统:" + monitoringSensorModel.current9 + "A" + "\r\n" + " 电流10 -主系统:" + monitoringSensorModel.current10 + "A" + "\r\n";
//以txt文档的形式存储接收到的数据 //以txt文档的形式存储接收到的数据---默认D盘
tools.AddLgoToTXT(FileModel.File_Name + FileModel.File_Time.ToString("yyyy-MM-dd") + " 历史数据查询记录" + ".txt", FileModel.File_Path + FileModel.File_Time.ToString("yyyy-MM-dd") + @"\", _localtime + ": " + _message + "\r\n"); //tools.AddLgoToTXT(FileModel.File_Name + FileModel.File_Time.ToString("yyyy-MM-dd") + " 历史数据查询记录" + ".txt", FileModel.File_Path + FileModel.File_Time.ToString("yyyy-MM-dd") + @"\", _localtime + ": " + _message + "\r\n");
_data = "收到历史数据,请查看文件:" + FileModel.File_Name + FileModel.File_Time.ToString("yyyy-MM-dd") + " 历史数据查询记录" + ".txt"; tools.AddLgoToTXT("历史数据查询记录.txt", Save_Path + System.DateTime.Now.ToString("yyyy_MM_dd") + @"\", System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ---- " + _message + "\r\n");
_data = "收到历史数据,请查看文件:" + Save_Path + FileModel.File_Time.ToString("yyyy-MM-dd") + " 历史数据查询记录" + ".txt";
ReceiveValueChangedChanged(null, _data); ReceiveValueChangedChanged(null, _data);
break; break;
default: default:

2663
monitoringtechnology.sql Normal file

File diff suppressed because it is too large Load Diff