private void btnReadCANSignalValue_Click(object sender, EventArgs e) { //输入原始的CAN报文,报文名称,信号名称,直接提取出对应的信号名称 if (cbbDBCChannel.SelectedIndex < 0) { Log("Please Select DBC Channel First!"); return; } TLIBCAN canObj = new TLIBCAN((APP_CHANNEL)cbbDBCChannel.SelectedIndex, 0x551, true, false, false, 8); for (int i = 0; i < 8; i++) { canObj.FData[i] = 0xFF; } double sigValue = 0; if (CheckResultOK(TsMasterApi.tsdb_get_signal_value_can(ref canObj, "Wheel_Speed", "FL_Speed", ref sigValue))) { Log("SignalValue is:" + sigValue.ToString()); } }
private void OnCANRxEvent(IntPtr AObj, ref TLIBCAN AData) { if (AData.FIsTx) { byte canid = Convert.ToByte(tbAddPeriodCANID.Text, 16); if (AData.FIdentifier == canid) { AData.FData[0]++; AData.FData[1]--; //更新数据还是采用tsapp_add_cyclic_msg_can函数,不新增API if (TsMasterApi.tsapp_add_cyclic_msg_can(ref AData, Convert.ToSingle(tbAddPeriodCANIntervalTime.Text)) == 0) { //避免直接跨线程操作界面控件! } } } if (AData.FIdentifier == 0x123) { if (TsMasterApi.tsdb_get_signal_value_can(ref AData, tBMessageName.Text, tBSignalName.Text, ref testSignalValue) == 0x00) { //ReadData Success } } }