Пример #1
0
        private void btnSetCANSignalValue_Click(object sender, EventArgs e)
        {
            //输入原始的CAN报文,报文名称,信号名称,直接提取出对应的信号名称
            TLIBCAN canObj = new TLIBCAN(0, 0x123, true, false, false, 8); //也可以创建一个全局的CAN报文,每次只修改信号值

            srcSignalValue += 1;
            if (CheckResultOK(TsMasterApi.tsdb_set_signal_value_can(ref canObj, tBMessageName.Text, tBSignalName.Text, srcSignalValue)))
            {
                Log("Set SignalValue:" + srcSignalValue.ToString("F2") + " Success!");
            }
            TsMasterApi.tsapp_add_cyclic_msg_can(ref canObj, 10);
        }
Пример #2
0
 private void btnAddCANPerodicMessage_Click(object sender, EventArgs e)
 {
     try
     {
         byte    canid  = Convert.ToByte(tbAddPeriodCANID.Text, 16);
         TLIBCAN canObj = new TLIBCAN(0, canid, true, false, false, 0);
         canObj.FDLC     = 8;
         canObj.FData[0] = 0xAA;
         canObj.FData[1] = 0xBB;
         Single intervalTime = Convert.ToSingle(tbAddPeriodCANIntervalTime.Text);
         if (TsMasterApi.tsapp_add_cyclic_msg_can(ref canObj, intervalTime) == 0)
         {
             Log("Add Period CAN Message Success!");
         }
     }
     catch
     {
     }
 }
Пример #3
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
         }
     }
 }