public void HandleRecvBmsInfoDataEvent(object sender, CustomRecvDataEventArgs e) { DdProtocol.bReadDdBmsResp = true; DdProtocolUpdateBmsInfo(e.RecvMsg); PassSOCEvent?.Invoke(this, new EventArgs <string>(ListBmsInfo[6].StrValue)); PassUTCEvent?.Invoke(this, new EventArgs <string>(ListBmsInfo[25].StrValue)); }
public void HandleRecvDDFeedbackInfoEvent(object sender, CustomRecvDataEventArgs e) { if (isReadFeedback) { isReadFeedback = false; DdProtocol.DdInstance.m_bIsStopCommunication = false; List <byte> listRecv = e.RecvMsg; try { if (listRecv.Count < 0x0A || listRecv[1] != 0x06) { return; } ListFeedbackInfo[0].StrValue = listRecv[2].ToString(); int value = (listRecv[4] << 8) | listRecv[5]; ListFeedbackInfo[1].StrValue = (value / 10.0).ToString("F1"); int maxValue = (listRecv[6] << 8) | listRecv[7]; ListFeedbackInfo[2].StrValue = (maxValue / 100.0).ToString("F2"); MessageBox.Show("反馈信息读取完成!", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "异常", MessageBoxButton.OK, MessageBoxImage.Error); } } }
public void HandleRecvEepromDataEvent(object sender, CustomRecvDataEventArgs e) { if (isReadEeprom) { if (e.RecvMsg[0] == 0xCC && e.RecvMsg.Count >= (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { if (e.RecvMsg[1] == 0xB0) { Thread.Sleep(1000); BqProtocol.bReadBqBmsResp = true; BqProtocol.BqInstance.ReadEepromData(); } else if (e.RecvMsg[1] == 0xB1) { isReadEeprom = false; int offset = 4; foreach (var it in m_ListEepromRegister) { it.StrValue = e.RecvMsg[offset].ToString("X2"); offset++; } if (SelectCANWnd.m_H5Protocol == H5Protocol.BO_QIANG) { BqProtocol.BqInstance.m_bIsStopCommunication = false; } else { DdProtocol.DdInstance.m_bIsStopCommunication = false; } MessageBox.Show("读取Eeprom寄存器参数完成", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } } } }
public void HandleReadBqBootEvent(object sender, CustomRecvDataEventArgs e) { try { if (isReadBoot) { if (e.RecvMsg[0] != 0xCC || e.RecvMsg[1] != 0xB9 || e.RecvMsg.Count < (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { return; } int offset = 4; byte[] array = e.RecvMsg.ToArray(); string projectName = System.Text.Encoding.ASCII.GetString(array, offset, 8); offset += 8; string hardwareVersion = System.Text.Encoding.ASCII.GetString(array, offset, 8); offset += 8; string bootVersion = System.Text.Encoding.ASCII.GetString(array, offset, 8); offset += 8; string appNum = System.Text.Encoding.ASCII.GetString(array, offset, 8); offset += 8; string company = System.Text.Encoding.ASCII.GetString(array, offset, 16); offset += 16; string programStatusStr = string.Empty; byte[] _array = new byte[2]; Buffer.BlockCopy(array, offset, _array, 0, _array.Length); int programStatus = ((_array[1] << 8) | (((_array[0])))); if (programStatus == 1) { programStatusStr = "APP初始化完成"; } else if (programStatus == 0) { programStatusStr = "BOOT"; } else if (programStatus == 2) { programStatusStr = "APP初始化"; } List <string> list = new List <string>(); list.Add(projectName.Substring(0, projectName.IndexOf('\0'))); list.Add(hardwareVersion.Substring(0, hardwareVersion.IndexOf('\0'))); list.Add(bootVersion.Substring(0, bootVersion.IndexOf('\0'))); list.Add(appNum.Substring(0, appNum.IndexOf('\0'))); list.Add(company.Substring(0, company.IndexOf('\0'))); list.Add(programStatusStr); UpdateBqBootInfo(list); MessageBox.Show("读取Boot信息成功!", "读取Boot提示", MessageBoxButton.OK, MessageBoxImage.Information); isReadBoot = false; } BqProtocol.BqInstance.m_bIsStopCommunication = false; } catch (Exception ex) { MessageBox.Show("Boot信息解析异常", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } }
public void HandleRecvAdjustParamEvent(object sender, CustomRecvDataEventArgs e) { if (isReadAdjustParam) { isReadAdjustParam = false; if (SelectCANWnd.m_H5Protocol == H5Protocol.BO_QIANG) { BqProtocol.BqInstance.m_bIsStopCommunication = false; } else { DdProtocol.DdInstance.m_bIsStopCommunication = false; } if (e.RecvMsg[0] == 0xCC && e.RecvMsg[1] == 0xAE && e.RecvMsg.Count >= (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { List <byte> data = e.RecvMsg; int offset = 4; for (int i = 0; i < m_ListAdjustParam.Count; i++) { if (m_ListAdjustParam[i].ByteCount == "2") { byte[] bytes = new byte[2]; if (BitConverter.IsLittleEndian) { bytes[0] = data[offset]; bytes[1] = data[offset + 1]; } else { bytes[0] = data[offset + 1]; bytes[1] = data[offset]; } if (m_ListAdjustParam[i].Name.Contains("电压")) { UInt16 nVal = BitConverter.ToUInt16(bytes, 0); m_ListAdjustParam[i].StrValue = nVal.ToString(); } else { Int16 nVal = BitConverter.ToInt16(bytes, 0); m_ListAdjustParam[i].StrValue = nVal.ToString(); } // nVal = (data[offset + 1] << 8 | data[offset]); offset += 2; } else if (m_ListAdjustParam[i].ByteCount == "4") { int nVal = (data[offset + 3] << 24 | data[offset + 2] << 16 | data[offset + 1] << 8 | data[offset]); m_ListAdjustParam[i].StrValue = nVal.ToString(); offset += 4; } } MessageBox.Show("校准参数读取成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } } }
public void HandleRecvDeviceInfoDataEvent(object sender, CustomRecvDataEventArgs e) { if (isReadDevice) { DdProtocol.bReadDdBmsResp = true; DdProtocolUpdateDeviceInfo(e.RecvMsg); } }
public void HandleRecvMcuDataEvent(object sender, CustomRecvDataEventArgs e) { if (isReadMCU) { BqProtocol.BqInstance.m_bIsStopCommunication = false; BqUpdateMcuInfo(e.RecvMsg); isReadMCU = false; } }
public virtual void OnRaiseReadDdRecordCountEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseReadDdRecordCountEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseRequireReadOthersEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseRequireReadOthersEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseSettingBrakeStatus(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseSettingBrakeStatusEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseAdjustInnerResistanceEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseAdjustInnerResistanceEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseSendUpdateAppInfoEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseSendUpdateAppInfoEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseWriteTemperatureProtectParamEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseWriteTemperatureProtectParamEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseAdjustBatteryVoltageEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseAdjustBatteryVoltageEvent; if (handler != null) { handler(this, e); } }
public void HandleRecvEepromDataEvent(object sender, CustomRecvDataEventArgs e) { if (isReadEeprom) { BqUpdateRomInfo(e.RecvMsg); BqProtocol.BqInstance.m_bIsStopCommunication = false; isReadEeprom = false; } }
public virtual void OnRaiseReadHumidityProtectParamEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseReadHumidityProtectParamEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseReadBqDeviceInfoEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseReadBqDeviceInfoEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseWriteMcuEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseWriteMcuEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseAdjustZeroCurrenEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseAdjustZeroCurrenEvent; if (handler != null) { handler(this, e); } }
// lipeng 2020.04.02写入制造信息 public virtual void OnRaiseWriteManufacturingInfoEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseWriteManufacturingInformationEvent; if (handler != null) { handler(this, e); } }
public virtual void OnRaiseCommunicationMessageEvent(CustomRecvDataEventArgs e) { DelegateBoqiangH5 handler = RaiseCommunicationMessageEvent; if (handler != null) { handler(this, e); } }
public void HandleRecvReadHumidityProtectParamEvent(object sender, CustomRecvDataEventArgs e) { UpdateProtectParam(e.RecvMsg, m_HumidityParamList); StartOrStopTimer(true); if (isRead) { isRead = false; MessageBox.Show("保护参数读取完成!", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } }
public void HandleRecvAdjustInnerResistanceEvent(object sender, CustomRecvDataEventArgs e) { BqProtocol.BqInstance.m_bIsStopCommunication = false; if (e.RecvMsg[0] == 0xDD && e.RecvMsg[1] == 0xAC && e.RecvMsg.Count == (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { var res = e.RecvMsg[5] << 8 | e.RecvMsg[4]; if (res == 0) { MessageBox.Show("校准内包进水阻抗成功!", "校准提示", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("校准内包进水阻抗失败!", "校准提示", MessageBoxButton.OK, MessageBoxImage.Information); } } }
public void HandleRecvWriteWarningProtectParamEvent(object sender, CustomRecvDataEventArgs e) { BqProtocol.BqInstance.m_bIsStopCommunication = false; if (e.RecvMsg[0] == 0xDD && e.RecvMsg[1] == 0xA3 && e.RecvMsg.Count >= (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { var res = e.RecvMsg[5] << 8 | e.RecvMsg[4]; if (res == 0) { MessageBox.Show("告警配置参数写入成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("告警配置参数写入失败!", "提示", MessageBoxButton.OK, MessageBoxImage.Information); } } }
public void HandleReadBqRTCEvent(object sender, CustomRecvDataEventArgs e) { if (SelectCANWnd.m_H5Protocol == H5Protocol.BO_QIANG) { BqProtocol.bReadBqBmsResp = true; if (e.RecvMsg[1] == 0xA3 && e.RecvMsg[0] == 0xCC && (e.RecvMsg.Count >= (e.RecvMsg[2] << 8 | e.RecvMsg[3]))) { int nRegister = ((e.RecvMsg[7] << 24) | (e.RecvMsg[6] << 16) | (e.RecvMsg[5] << 8) | e.RecvMsg[4]); TimeSpan ts = new TimeSpan((long)(nRegister * Math.Pow(10, 7))); tbRtc.Text = (systemStartTime + ts).ToString("yyyy/MM/dd HH:mm:ss"); } else { string str = "RTC数据读取失败!"; tbRtc.Text = str; } } }
public void HandleEraseInfoDataEvent(object sender, CustomRecvDataEventArgs e) { if (isErase) { BqProtocol.bReadBqBmsResp = true; if (e.RecvMsg[0] == 0xD6) { MessageBox.Show("备份数据擦除成功!", "擦除提示", MessageBoxButton.OK, MessageBoxImage.Information); m_ListRecordsInfo.Clear(); //dataGridRecord.Items.Clear(); } else { MessageBox.Show("备份数据擦除失败!", "擦除提示", MessageBoxButton.OK, MessageBoxImage.Information); } isErase = false; } }
public void HandleRecvBmsInfoDataEvent(object sender, CustomRecvDataEventArgs e) { if (SelectCANWnd.m_H5Protocol == H5Protocol.BO_QIANG) { if (string.IsNullOrEmpty(tbRtc.Text.Trim())) { BqProtocol.BqInstance.BQ_ReadRTC(); } BqUpdateCellVoltage(e.RecvMsg); } else { ////if (string.IsNullOrEmpty(tbRtc.Text.Trim())) ////{ //// DDProtocol.DdProtocol.DdInstance.Didi_ReadRTC(); ////} DdUpdateCellVoltage(e.RecvMsg); } }
public void HandleAdjustZeroCurrenEvent(object sender, CustomRecvDataEventArgs e) { if (isAdjustZeroCurrent) { BqProtocol.bReadBqBmsResp = true; if (e.RecvMsg[0] == 0xDD && e.RecvMsg[1] == 0xA8 && e.RecvMsg.Count == (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { var res = e.RecvMsg[5] << 8 | e.RecvMsg[4]; if (res == 0) { MessageBox.Show("校准零点电流成功!", "校准提示", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("校准零点电流失败!", "校准提示", MessageBoxButton.OK, MessageBoxImage.Information); } } isAdjustZeroCurrent = false; } }
public void HandleWriteEepromDataEvent(object sender, CustomRecvDataEventArgs e) { if (isWriteEeprom) { BqProtocol.bReadBqBmsResp = true; if (e.RecvMsg[0] == 0xDD || e.RecvMsg[1] == 0xA6 || e.RecvMsg.Count == (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { var res = e.RecvMsg[5] << 8 | e.RecvMsg[4]; if (res == 0) { MessageBox.Show("写入 EEPROM 参数成功!", "写入 EEPROM 提示", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show("写入 EEPROM 参数失败!", "写入 EEPROM 提示", MessageBoxButton.OK, MessageBoxImage.Information); } } isWriteEeprom = false; BqProtocol.BqInstance.m_bIsStopCommunication = false; } }
public void HandleAdjustRTCEvent(object sender, CustomRecvDataEventArgs e) { if (isAdjustRTC) { BqProtocol.bReadBqBmsResp = true; if (e.RecvMsg[0] == 0xDD && e.RecvMsg[1] == 0xA7 && e.RecvMsg.Count == (e.RecvMsg[2] << 8 | e.RecvMsg[3])) { var res = e.RecvMsg[5] << 8 | e.RecvMsg[4]; if (res == 0) { MessageBox.Show("校准RTC成功!", "校准提示", MessageBoxButton.OK, MessageBoxImage.Information); BqProtocol.BqInstance.BQ_ReadRTC(); } else { MessageBox.Show("校准RTC失败!", "校准提示", MessageBoxButton.OK, MessageBoxImage.Information); } } isAdjustRTC = false; } }