Example #1
0
        /// <summary>
        /// tsapp_enumerate_hw_devices函数必须在App未连接状态下才能够执行!
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGetDeviceNum_Click(object sender, EventArgs e)
        {
            int        hardwareNum = 0;
            TLIBHWInfo tmp         = new TLIBHWInfo(0);
            string     retMessage  = TsMasterApi.tsapp_get_error_description(TsMasterApi.tsapp_enumerate_hw_devices(out hardwareNum));

            if (retMessage == "OK")
            {
                LogDeviceInformation("Hardware Num:" + hardwareNum.ToString());
                tBDeviceNumber.Text = hardwareNum.ToString();
                cbbDeviceIndex.Items.Clear();
                for (int i = 0; i < hardwareNum; i++)
                {
                    cbbDeviceIndex.Items.Add(i.ToString());
                }
                if (hardwareNum > 0)
                {
                    cbbDeviceIndex.SelectedIndex = 0;
                }
            }
            else
            {
                LogDeviceInformation(retMessage);
            }
        }
Example #2
0
        private void button4_Click(object sender, EventArgs e)
        {
            TLIBCANFD[] canBuffer = new TLIBCANFD[10];
            int         revCnt    = 0;

            revCnt = TsMasterApi.tsfifo_receive_canfd_message_list(ref canBuffer, 10, APP_CHANNEL.CHN1, READ_TX_RX_DEF.TX_RX_MESSAGES);  //如果执行失败,请检查是否通过TsMasterApi.tsapp_enable_receive_fifo();开启了内部Buffer
            if (revCnt == 0)
            {
                Log("No Message Received!");
                return;
            }
            for (int i = 0; i < revCnt; i++)
            {
                string msg = "CANFD Msg: ";
                if (canBuffer[i].FIsTx)
                {
                    msg += "Tx ";
                }
                else
                {
                    msg += "Rx ";
                }
                msg += canBuffer[i].FIdentifier.ToString("X8");
                Log(msg);
            }
        }
Example #3
0
 private void btnDeleteAllCANPeriodicMessages_Click(object sender, EventArgs e)
 {
     if (TsMasterApi.tsapp_delete_cyclic_msgs() == 0)
     {
         Log("Delete All Period CAN Message Success!");
     }
 }
Example #4
0
 private void btnAddApplication_Click(object sender, EventArgs e)
 {
     if (TsMasterApi.tsapp_add_application(tbApplicationName.Text) == 0)
     {
         Log("Add Application Success:" + tbApplicationName.Text);
     }
 }
Example #5
0
 private void InternalRegisterEvents()
 {
     // register only one of them: CAN or CANFD
     TsMasterApi.tsapp_register_event_can((IntPtr)0, vCANQueueEventObj);
     TsMasterApi.tsapp_register_event_canfd((IntPtr)0, vCANFDQueueEventObj);
     TsMasterApi.tsapp_register_event_lin((IntPtr)0, vLINQueueEventObj);
 }
Example #6
0
 private void btnDeleteChannelMapping_Click(object sender, EventArgs e)
 {
     if (TsMasterApi.tsapp_del_mapping_verbose(FProgramName, (TLIBApplicationChannelType)cbbChannelType1.SelectedIndex,
                                               (APP_CHANNEL)cbbAppChannelIndex.SelectedIndex) == 0)
     {
         Log("Delete Mapping Success");
     }
 }
Example #7
0
 private void button2_Click(object sender, EventArgs e)
 {
     if (cbbWindowName.Text.Trim() == "")
     {
         MessageBox.Show("请先选择一个窗体名称!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         return;
     }
     TsMasterApi.tsapp_show_tsmaster_window(cbbWindowName.Text.Trim(), false);
 }
Example #8
0
        private void btnGetApplicationList_Click(object sender, EventArgs e)
        {
            IntPtr applicationList = new IntPtr();

            if (TsMasterApi.tsapp_get_application_list(ref applicationList) == 0)
            {
                string appList = Marshal.PtrToStringAnsi(applicationList);
                tbApplicationList.Text = appList;
            }
        }
Example #9
0
        private void btnGetChannelMapping_Click(object sender, EventArgs e)
        {
            TLIBTSMapping m = new TLIBTSMapping();

            if (TsMasterApi.tsapp_get_mapping_verbose(FProgramName, (TLIBApplicationChannelType)cbbChannelType1.SelectedIndex,
                                                      (APP_CHANNEL)cbbAppChannelIndex.SelectedIndex, ref m) == 0)
            {
                Log("Get Mapping Success");
                MessageBox.Show("HardwareName:" + m.GetHWDeviceName() + "HardwareChannel:" + m.FHWChannelIndex.ToString());
            }
        }
Example #10
0
 private void btnDisconnectApplication_Click(object sender, EventArgs e)
 {
     if (TsMasterApi.tsapp_disconnect() == 0)
     {
         Log("Disconnect Application Success:" + FProgramName);
     }
     else
     {
         Log("Disconnect Application Failed:" + FProgramName);
     }
 }
Example #11
0
 private Boolean CheckResultOK(int AResultCode)
 {
     if (AResultCode == 0)
     {
         return(true);
     }
     else
     {
         Log("Error occured: " + TsMasterApi.tsapp_get_error_description(AResultCode));
         return(false);
     }
 }
Example #12
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);
        }
Example #13
0
 private void btnStartLogging_Click(object sender, EventArgs e)
 {
     if (btnStartLogging.Text == "Start Logging")
     {
         TsMasterApi.tsapp_start_logging(@".\TestData" + DateTime.Now.ToString("dd-HH-mm-ss") /*+ ".blf"*/);
         btnStartLogging.Text = "Stop Logging";
     }
     else
     {
         TsMasterApi.tsapp_stop_logging();
         btnStartLogging.Text = "Start Logging";
     }
 }
Example #14
0
        private void btnTransmitCANFDSync_Click(object sender, EventArgs e)
        {
            TLIBCANFD canMsg = new TLIBCANFD(0, 0x456, true, false, false, 8);

            if (TsMasterApi.tsapp_transmit_canfd_sync(ref canMsg, 200) == 0)
            {
                Log("Sync Send CANFD Message Success!");
            }
            else
            {
                Log("Sync Send CANFD Message Failed");
            }
        }
Example #15
0
 /// <summary>
 /// 常见错误:通道映射错误。比如设置了2路CAN,2路LIN。为CAN映射了硬件,但是没有为LIN通道映射硬件通道,就会造成错误!
 /// 解决办法:如果不用对应的通道,则把对应通道数设置为0
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnConnectApplication_Click(object sender, EventArgs e)
 {
     if (CheckResultOK(TsMasterApi.tsapp_connect()))
     {
         Log("Connect Application Success!");
         TsMasterApi.tsfifo_enable_receive_fifo();
         Log("Start Receive FIFO!");  //如果不使能内部FIFO,无法使用Receive函数读取内部报文
     }
     else
     {
         Log("Connect Application Failed! Please check the mapping table and whether the Hardware is Ready?!");
     }
 }
Example #16
0
 private void btnSetApplicationLINCount_Click(object sender, EventArgs e)
 {
     try
     {
         int chnCount = Convert.ToInt32(tbLINCount.Text);
         if (TsMasterApi.tsapp_set_lin_channel_count(chnCount) == 0)
         {
             Log("Set LIN Channel Count Success!");
         }
     }
     catch
     {
     }
 }
Example #17
0
        private void btnGetAppointtedDeviceInfo_Click(object sender, EventArgs e)
        {
            if (cbbDeviceIndex.SelectedIndex < 0)
            {
                LogDeviceInformation("Please select device Index first!");
                return;
            }
            TLIBHWInfo tmpDeviceInfo = new TLIBHWInfo(0);

            if (TsMasterApi.tsapp_get_hw_info_by_index(cbbDeviceIndex.SelectedIndex, ref tmpDeviceInfo) == 0)
            {
                LogDeviceInformation(tmpDeviceInfo.FDeviceInformation);
            }
        }
Example #18
0
 private void btnGetApplicationLINCount_Click(object sender, EventArgs e)
 {
     try
     {
         int chnCount = 0;
         if (TsMasterApi.tsapp_get_lin_channel_count(ref chnCount) == 0)
         {
             tbGetLINCount.Text = chnCount.ToString();
             Log("Set LIN Channel Count Success!");
         }
     }
     catch
     {
     }
 }
Example #19
0
 private void btnDeleteCANPeridicMessage_Click(object sender, EventArgs e)
 {
     try
     {
         byte    canid  = Convert.ToByte(tbDelPeriodCANID.Text, 16);
         TLIBCAN canObj = new TLIBCAN(0, canid, true, false, false, 0);
         if (TsMasterApi.tsapp_delete_cyclic_msg_can(ref canObj) == 0)
         {
             Log("Delete Period CAN Message Success!");
         }
     }
     catch
     {
     }
 }
Example #20
0
 private void btnUnloadDBC_Click(object sender, EventArgs e)
 {
     try
     {
         UInt32 ADBCHandle = Convert.ToUInt32(tBUnloadDBCHandle.Text);
         if (CheckResultOK(TsMasterApi.tsdb_unload_can_db(ADBCHandle)))
         {
             Log("Log DBC Success!");
         }
     }
     catch
     {
         MessageBox.Show("DBC Handle is UINT32 data type", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
 }
Example #21
0
 private void btnLoadDBCPath_Click(object sender, EventArgs e)
 {
     if (CheckResultOK(TsMasterApi.tsdb_unload_can_dbs()))
     {
         Log("Unload DBC Success!");
     }
     //Database必须是绝对路径
     if (CheckResultOK(TsMasterApi.tsdb_load_can_db(Application.StartupPath + @".\" + tbDBCPath.Text,
                                                    new APP_CHANNEL[] { APP_CHANNEL.CHN1, APP_CHANNEL.CHN2, APP_CHANNEL.CHN3, APP_CHANNEL.CHN4 }, ref FDBCHandle)))
     {
         tBUnloadDBCHandle.Text = FDBCHandle.ToString();
         tbDBCQueryHandle.Text  = FDBCHandle.ToString();
         Log("Load DBC Success!");
     }
 }
Example #22
0
 private void btnSetApplicationChannel1Mapping_Click(object sender, EventArgs e)
 {
     if ((TLIBBusToolDeviceType)cbbDeviceType1.SelectedIndex == TLIBBusToolDeviceType.PEAK_USB_DEVICE)
     {
         if (TsMasterApi.tsapp_set_mapping_verbose(tbApplicationName.Text, (TLIBApplicationChannelType)cbbChannelType1.SelectedIndex,
                                                   (APP_CHANNEL)cbbAppChannelIndex.SelectedIndex, cbbDeviceType1.Text, (TLIBBusToolDeviceType)cbbDeviceType1.SelectedIndex, -1, 0, (HARDWARE_CHANNEL)0x51) == 0)
         {
             Log("Mappings of channel " + (1 + (int)0).ToString() + " has been set");
         }
     }
     else
     {
         if (TsMasterApi.tsapp_set_mapping_verbose(tbApplicationName.Text, (TLIBApplicationChannelType)cbbChannelType1.SelectedIndex,
                                                   (APP_CHANNEL)cbbAppChannelIndex.SelectedIndex, cbbDeviceType1.Text, (TLIBBusToolDeviceType)cbbDeviceType1.SelectedIndex, cbbSubDeviceType1.SelectedIndex, 0, (HARDWARE_CHANNEL)cbbHardwareChannel1.SelectedIndex) == 0)
         {
             Log("Mappings of channel " + (1 + (int)0).ToString() + " has been set");
         }
     }
 }
Example #23
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
     {
     }
 }
Example #24
0
        private void btnQuery_Click(object sender, EventArgs e)
        {
            string retMsg = TsMasterApi.tsdb_get_can_db_info(
                Convert.ToUInt32(tbDBCQueryHandle.Text),
                cbbQueryType.SelectedIndex,
                Convert.ToInt32(tbSubIdx.Text),
                Convert.ToInt32(tbSubSubIdx.Text)
                );

            if (retMsg != "")
            {
                tBQueryResult.Text += retMsg + "\r\n";
                Log("Query success");
            }
            else
            {
                Log("Database index invalid or parameter invalid");
            }
        }
Example #25
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());
            }
        }
Example #26
0
 private void Form1_Load(object sender, EventArgs e)
 {
     FProgramName           = Path.GetFileNameWithoutExtension(Application.ExecutablePath); //首先获取应用程序名称
     tbApplicationName.Text = FProgramName;
     LoadDefaultState();
     //
     //初始化API模块:这是后续调用所有TsMasterApi函数的前提
     TsMasterApi.initialize_lib_tsmaster(FProgramName);
     //设置需要探测的硬件
     TsMasterApi.tsapp_set_vendor_detect_preferences(true, true, true, false, false, false);
     //
     vCANQueueEventObj   += new TCANQueueEvent(OnCANRxEvent);
     vCANFDQueueEventObj += new TCANFDQueueEvent(OnCANFDRxEvent);
     vLINQueueEventObj   += new TLINQueueEvent(OnLINRxEvent);
     //注册接收回调函数:在每一次的回调函数vCANQueueEventObj中刷新数据段
     if (TsMasterApi.tsapp_register_event_can((IntPtr)0, vCANQueueEventObj) != 0x00)
     {
         Log("Register CANRx Failed!");
     }
     cbbQueryType.SelectedIndex = 0;
 }
Example #27
0
        private void btnAddReplayEngine_Click(object sender, EventArgs e)
        {
            int            AReplayIndex = 0;
            OpenFileDialog openFileObj  = new OpenFileDialog();

            openFileObj.Filter      = "blfFile|*.blf";
            openFileObj.FilterIndex = 0;
            if (openFileObj.ShowDialog() == DialogResult.OK)
            {
                string fileName = openFileObj.FileName;
                TsMasterApi.tslog_stop_online_replays();
                int retValue = TsMasterApi.tslog_del_online_replay_configs();
                if (retValue != 0)
                {
                    MessageBox.Show("Error:" + retValue.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                retValue = TsMasterApi.tslog_add_online_replay_config(fileName, ref AReplayIndex);
                if (retValue != 0)
                {
                    MessageBox.Show("Error:" + retValue.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                retValue = TsMasterApi.tslog_set_online_replay_config(AReplayIndex, "Test", fileName, false,
                                                                      true, TsMasterApi.TLIBOnlineReplayTimingMode.ortImmediately, 0, true, false,
                                                                      "1,0,0,0,0,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32"); //必须32个数字,否则Mapping失败
                if (retValue != 0)
                {
                    MessageBox.Show("Error:" + retValue.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                retValue = TsMasterApi.tslog_start_online_replay(AReplayIndex);
                if (retValue != 0)
                {
                    MessageBox.Show("Error:" + retValue.ToString(), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                Log("Load Blf File Success!");
            }
        }
Example #28
0
        private void btnSetCANBaudrate_Click(object sender, EventArgs e)
        {
            int    i;
            Single b;

            try
            {
                i = cbbAppChannel_CAN.SelectedIndex;
                b = Convert.ToSingle(tBCANBaudrate.Text);
                if (TsMasterApi.tsapp_configure_baudrate_can(i, b, false, chkCANResistor.Checked) == 0)
                {
                    Log("CAN Channel " + (i + 1).ToString() + " baudrate has been configured");
                }
                else
                {
                    Log("CAN Channel " + (i + 1).ToString() + " baudrate failed");
                }
            }
            catch
            {
            }
        }
Example #29
0
        private void btnGetAllHardwareInfos_Click(object sender, EventArgs e)
        {
            int        hardwareNum   = 0;
            TLIBHWInfo tmpDeviceInfo = new TLIBHWInfo(0);
            string     retMessage    = TsMasterApi.tsapp_get_error_description(TsMasterApi.tsapp_enumerate_hw_devices(out hardwareNum));

            if (retMessage == "OK")
            {
                LogDeviceInformation("Hardware Num:" + hardwareNum.ToString());
            }
            else
            {
                Log(retMessage);
                LogDeviceInformation("Enum hardware Info Failed!");
            }
            for (int i = 0; i < hardwareNum; i++)
            {
                if (TsMasterApi.tsapp_get_hw_info_by_index(i, ref tmpDeviceInfo) == 0)
                {
                    LogDeviceInformation(tmpDeviceInfo.FDeviceInformation);
                }
            }
        }
Example #30
0
        private void btnSetCANFDBaudrate_Click(object sender, EventArgs e)
        {
            int    i;
            Single b, c;

            try
            {
                i = cbbAppChannel_CANFD.SelectedIndex;
                b = Convert.ToSingle(tBCANFDArbBaudrate.Text);
                c = Convert.ToSingle(tBCANFDDataBaudrate.Text);
                if (TsMasterApi.tsapp_configure_baudrate_canfd(i, b, c, TLIBCANFDControllerType.lfdtISOFDCAN,
                                                               TLIBCANFDControllerMode.lfdmNormal, chkCANResistor.Checked) == 0)
                {
                    Log("CANFD Channel " + (i + 1).ToString() + " baudrate has been configured");
                }
                else
                {
                    Log("CANFD Channel " + (i + 1).ToString() + " baudrate failed");
                }
            }
            catch
            {
            }
        }