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 { } }
private void CreateApplicationDemo() { //FProgramName:唯一名称,后面的各种映射跟他绑定 //第一步:初始化API模块,如果已经调用,这里则不需要调用 //TsMasterApi.initialize_lib_tsmaster(FProgramName); //第二步:按需设置需要的通道数,比如,这里需要2个CAN通道,0个LIN通道 if (TsMasterApi.tsapp_set_can_channel_count(4) == 0) { Log("Set CAN Channel Count Success!"); } else { Log("Set CAN Channel Count Failed!"); } if (TsMasterApi.tsapp_set_lin_channel_count(0) == 0) { Log("Set LIN Channel Count Success!"); } else { Log("Set LIN Channel Count Failed!"); } //第三步:按需创建通道映射: if (TsMasterApi.tsapp_set_mapping_verbose(FProgramName, TLIBApplicationChannelType.APP_CAN, APP_CHANNEL.CHN1, "TC1005", TLIBBusToolDeviceType.TS_TC1005_DEVICE, 0, 0, HARDWARE_CHANNEL.CHN1) == 0) { } if (TsMasterApi.tsapp_set_mapping_verbose(FProgramName, TLIBApplicationChannelType.APP_CAN, APP_CHANNEL.CHN2, "TC1005", TLIBBusToolDeviceType.TS_TC1005_DEVICE, 0, 0, HARDWARE_CHANNEL.CHN2) == 0) { } //把TC1005板卡的硬件通道1映射到驱动的逻辑通道1上面 if (TsMasterApi.tsapp_set_mapping_verbose(FProgramName, TLIBApplicationChannelType.APP_CAN, APP_CHANNEL.CHN3, "TC1005", TLIBBusToolDeviceType.TS_TC1005_DEVICE, 0, 0, HARDWARE_CHANNEL.CHN3) == 0) { Log("Mappings of channel " + (1 + (int)0).ToString() + " has been set"); } //把TC1005板卡的硬件通道2映射到驱动的逻辑通道2上面 if (TsMasterApi.tsapp_set_mapping_verbose(FProgramName, TLIBApplicationChannelType.APP_CAN, APP_CHANNEL.CHN4, "TC1005", TLIBBusToolDeviceType.TS_TC1005_DEVICE, 0, 0, HARDWARE_CHANNEL.CHN4) == 0) { Log("Mappings of channel " + (1 + (int)1).ToString() + " has been set"); } //第四步:初始化通道参数 if (TsMasterApi.tsapp_configure_baudrate_can((int)APP_CHANNEL.CHN1, 500, false, true) == 0) { Log("CAN Channel " + (0 + 1).ToString() + " baudrate has been configured"); } else { Log("CAN Channel " + (0 + 1).ToString() + " baudrate failed"); } if (TsMasterApi.tsapp_configure_baudrate_can((int)APP_CHANNEL.CHN2, 500, false, true) == 0) { Log("CAN Channel " + (1 + 1).ToString() + " baudrate has been configured"); } else { Log("CAN Channel " + (1 + 1).ToString() + " baudrate failed"); } if (TsMasterApi.tsapp_configure_baudrate_can((int)APP_CHANNEL.CHN3, 500, false, true) == 0) { Log("CAN Channel " + (2 + 1).ToString() + " baudrate has been configured"); } else { Log("CAN Channel " + (2 + 1).ToString() + " baudrate failed"); } if (TsMasterApi.tsapp_configure_baudrate_can((int)APP_CHANNEL.CHN4, 500, false, true) == 0) { Log("CAN Channel " + (3 + 1).ToString() + " baudrate has been configured"); } else { Log("CAN Channel " + (3 + 1).ToString() + " baudrate failed"); } //第五步:连接application:连接硬件通道并开启接收FIFO string connectResult = TsMasterApi.tsapp_get_error_description(TsMasterApi.tsapp_connect()); if (connectResult == "OK") { Log("Connect Application Success!"); TsMasterApi.tsfifo_enable_receive_fifo(); Log("Start Receive FIFO!"); //如果不使能内部FIFO,无法使用Receive函数读取内部报文 } else { Log(connectResult); Log("Connect Application Failed! Please check the mapping table and whether the Hardware is Ready?!"); } }