Пример #1
0
        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());
            }
        }
Пример #2
0
 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
         }
     }
 }