库伯勒立撤倍加福三合一拉线编码器配置工具
库伯勒立撤倍加福三合一拉线编码器配置工具
- 库伯勒编码器配置界面
- 立撤编码器配置界面
- 倍加福编码器配置界面
基于C#语言开发,快速配置,自动保存,支持多种CAN工具接入使用。
无需使用查看配置手册,即可能够快速有效的配置拉线编码器。
给安装、生产、调试带来便利。
软件下载地址:https://download.csdn.net/download/ahphong/87246828
库伯勒编码器配置界面
立撤编码器配置界面
倍加福编码器配置界面
部分核心代码
#region can初始化/// <summary>/// can初始化/// </summary>private void CAN_init(){List<Devtype> Devtype_List = new List<Devtype>();Devtype_List.Add(new Devtype { ID = 0, Name = "请选择CAN盒" });Devtype_List.Add(new Devtype { ID = 1, Name = "PCI5121" });Devtype_List.Add(new Devtype { ID = 2, Name = "PCI9810" });Devtype_List.Add(new Devtype { ID = 3, Name = "USBCAN1" });Devtype_List.Add(new Devtype { ID = 4, Name = "USBCAN2/USBCAN2A" });Devtype_List.Add(new Devtype { ID = 5, Name = "PCI9820" });Devtype_List.Add(new Devtype { ID = 6, Name = "CAN232" });Devtype_List.Add(new Devtype { ID = 7, Name = "PCI5110" });Devtype_List.Add(new Devtype { ID = 8, Name = "CANLITE" });Devtype_List.Add(new Devtype { ID = 9, Name = "ISA9620" });Devtype_List.Add(new Devtype { ID = 10, Name = "ISA5420" });Devtype_List.Add(new Devtype { ID = 11, Name = "PC104CAN" });Devtype_List.Add(new Devtype { ID = 12, Name = "CANETUDP" });Devtype_List.Add(new Devtype { ID = 13, Name = "DNP9810" });Devtype_List.Add(new Devtype { ID = 14, Name = "PCI9840" });Devtype_List.Add(new Devtype { ID = 15, Name = "PC104CAN2" });Devtype_List.Add(new Devtype { ID = 16, Name = "PCI9820I" });Devtype_List.Add(new Devtype { ID = 17, Name = "CANETTCP" });Devtype_List.Add(new Devtype { ID = 18, Name = "PEC9920" });Devtype_List.Add(new Devtype { ID = 19, Name = "PCI5010U" });Devtype_List.Add(new Devtype { ID = 20, Name = "USBCAN_E_U" });Devtype_List.Add(new Devtype { ID = 21, Name = "USBCAN_2E_U" });Devtype_List.Add(new Devtype { ID = 22, Name = "PCI5020U" });Devtype_List.Add(new Devtype { ID = 23, Name = "EG20T_CAN" });comboBox_devtype.ItemsSource = Devtype_List;comboBox_devtype.SelectedIndex = 21; //默认USBCAN_2E_UList<DevIndex> DevIndex_List = new List<DevIndex>();DevIndex_List.Add(new DevIndex { ID = 0, Name = "0" });DevIndex_List.Add(new DevIndex { ID = 1, Name = "1" });comboBox_DevIndex.ItemsSource = DevIndex_List;comboBox_DevIndex.SelectedIndex = 0; //默认0索引List<CANIndex> CANIndex_List = new List<CANIndex>();CANIndex_List.Add(new CANIndex { ID = 0, Name = "0" });CANIndex_List.Add(new CANIndex { ID = 1, Name = "1" });CANIndex_List.Add(new CANIndex { ID = 2, Name = "2" });CANIndex_List.Add(new CANIndex { ID = 3, Name = "3" });comboBox_CANIndex.ItemsSource = CANIndex_List;comboBox_CANIndex.SelectedIndex = 0; //默认0路canList<Filter> Filter_List = new List<Filter>();Filter_List.Add(new Filter { ID = 0, Name = "双滤波" });Filter_List.Add(new Filter { ID = 1, Name = "单滤波" });comboBox_Filter.ItemsSource = Filter_List;comboBox_Filter.SelectedIndex = 1;List<Mode> Mode_List = new List<Mode>();Mode_List.Add(new Mode { ID = 0, Name = "正常" });Mode_List.Add(new Mode { ID = 1, Name = "只听" });comboBox_Mode.ItemsSource = Mode_List;comboBox_Mode.SelectedIndex = 0;List<SendType> SendType_List = new List<SendType>();SendType_List.Add(new SendType { ID = 0, Name = "正常发送" });SendType_List.Add(new SendType { ID = 1, Name = "单次正常发送" });SendType_List.Add(new SendType { ID = 2, Name = "自发自收" });SendType_List.Add(new SendType { ID = 3, Name = "单次自发自收" });List<FrameFormat> FrameFormat_List = new List<FrameFormat>();FrameFormat_List.Add(new FrameFormat { ID = 0, Name = "正常发送" });FrameFormat_List.Add(new FrameFormat { ID = 1, Name = "单次正常发送" });List<FrameType> FrameType_List = new List<FrameType>();FrameType_List.Add(new FrameType { ID = 0, Name = "标准帧" });FrameType_List.Add(new FrameType { ID = 1, Name = "扩展帧" });List<e_u_baud> e_u_baud_List = new List<e_u_baud>();e_u_baud_List.Add(new e_u_baud { ID = 0, Name = "1000K" });e_u_baud_List.Add(new e_u_baud { ID = 1, Name = "800K" });e_u_baud_List.Add(new e_u_baud { ID = 2, Name = "500K" });e_u_baud_List.Add(new e_u_baud { ID = 3, Name = "250K" });e_u_baud_List.Add(new e_u_baud { ID = 4, Name = "125K" });e_u_baud_List.Add(new e_u_baud { ID = 5, Name = "100K" });comboBox_e_u_baud.ItemsSource = e_u_baud_List;comboBox_e_u_baud.SelectedIndex = 3;//250KbpsList<e_u_Filter> e_u_Filter_List = new List<e_u_Filter>();e_u_Filter_List.Add(new e_u_Filter { ID = 0, Name = "标准帧滤波" });e_u_Filter_List.Add(new e_u_Filter { ID = 1, Name = "扩展帧滤波" });e_u_Filter_List.Add(new e_u_Filter { ID = 2, Name = "禁能滤波" });comboBox_e_u_Filter.ItemsSource = e_u_Filter_List;comboBox_e_u_Filter.SelectedIndex = 2;//禁用List<e_u_startid> e_u_startid_List = new List<e_u_startid>();e_u_startid_List.Add(new e_u_startid { ID = 0, Name = "1" });textBox_e_u_startid.ItemsSource = e_u_startid_List;textBox_e_u_startid.SelectedIndex = 0;List<e_u_endid> e_u_endid_List = new List<e_u_endid>();e_u_endid_List.Add(new e_u_endid { ID = 0, Name = "FF" });textBox_e_u_endid.ItemsSource = e_u_endid_List;textBox_e_u_endid.SelectedIndex = 0;}#region 显示接收数据/// <summary>/// 显示接收数据/// </summary>unsafe private void ReceiveServer(){UInt32 res = new UInt32();res = VCI_GetReceiveNum(m_devtype, m_devind, m_canind);if (res == 0)return;IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(VCI_CAN_OBJ)) * (Int32)res);res = VCI_Receive(m_devtype, m_devind, m_canind, pt, res, 100);String str = "";for (UInt32 i = 0; i < res; i++){VCI_CAN_OBJ obj = (VCI_CAN_OBJ)Marshal.PtrToStructure((IntPtr)((UInt32)pt + i * Marshal.SizeOf(typeof(VCI_CAN_OBJ))), typeof(VCI_CAN_OBJ));str = "收到: ";str += "ID:0x" + System.Convert.ToString((Int32)obj.ID, 16);str += " 格式:";if (obj.RemoteFlag == 0)str += "数据帧 ";elsestr += "远程帧 ";if (obj.ExternFlag == 0)str += "标准帧 ";elsestr += "扩展帧 ";if (obj.RemoteFlag == 0){str += "数据:";byte len = (byte)(obj.DataLen % 9);byte j = 0;if (j++ < len)str += " " + obj.Data[0].ToString("X2");if (j++ < len)str += " " + obj.Data[1].ToString("X2");if (j++ < len)str += " " + obj.Data[2].ToString("X2");if (j++ < len)str += " " + obj.Data[3].ToString("X2");if (j++ < len)str += " " + obj.Data[4].ToString("X2");if (j++ < len)str += " " + obj.Data[5].ToString("X2");if (j++ < len)str += " " + obj.Data[6].ToString("X2");if (j++ < len)str += " " + obj.Data[7].ToString("X2");}System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>{listBox_Info.Items.Add(str);listBox_Info_Count.Content = listBox_Info.Items.Count;listBox_Info.SelectedIndex = listBox_Info.Items.Count;listBox_Info.ScrollIntoView(listBox_Info.SelectedItem);}));if (listBox_Info.Items.Count >= 9999){try{System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>{listBox_Info.Items.Clear();listBox_Info_Count.Content = 0;}));}catch{Dispatcher.Invoke(new Action(delegate{listBox_Info.Items.Clear();listBox_Info_Count.Content = 0;}));}}}Marshal.FreeHGlobal(pt);}#endregion#endregion#region 开启节点/// <summary>/// 开启节点/// </summary>/// <param name="sender"></param>/// <param name="e"></param>unsafe private void OpenCAN_Click(object sender, EventArgs e){if (m_bOpen == 0){Dispatcher.Invoke(new Action(delegate{MessageBox.Show("设备未连接,请先点击【连接并启动】按钮", this);}));return;}try{string FrameID = "01 00";System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>{VCI_CAN_OBJ sendobj = new VCI_CAN_OBJ();sendobj.SendType = (byte)0;sendobj.RemoteFlag = (byte)0;sendobj.ExternFlag = (byte)0;sendobj.ID = System.Convert.ToUInt32("0x" + "00000000", 16);int len = (FrameID.Length + 1) / 3;sendobj.DataLen = System.Convert.ToByte(len);String strdata = FrameID;int i = -1;if (i++ < len - 1)sendobj.Data[0] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[1] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[2] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[3] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[4] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[5] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[6] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[7] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);int nTimeOut = 0;VCI_SetReference(m_devtype, m_devind, m_canind, 4, (byte*)&nTimeOut);if (VCI_Transmit(m_devtype, m_devind, m_canind, ref sendobj, 1) == 0){Dispatcher.Invoke(new Action(delegate{MessageBox.Show("节点开启失败", this);}));return;}}));}catch { }}#endregion
#region 发送数据VCI_CAN_OBJ sendobj = new VCI_CAN_OBJ();/// <summary>/// CAN发送数据,CANID、FrameData数据/// </summary>/// <param name="CANID"></param>/// <param name="FrameData"></param>unsafe private void CANSendMessage(string CANID, String FrameData){if (m_bOpen == 0){Dispatcher.Invoke(new Action(delegate{MessageBox.Show("设备未连接,请先点击【连接并启动】按钮", this);}));return;}try{sendobj.SendType = (byte)0;sendobj.RemoteFlag = (byte)0;sendobj.ExternFlag = (byte)0;sendobj.ID = System.Convert.ToUInt32("0x" + CANID, 16);int len = (FrameData.Length + 1) / 3;sendobj.DataLen = System.Convert.ToByte(len);String strdata = FrameData;int i = -1;System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>{if (i++ < len - 1)sendobj.Data[0] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[1] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[2] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[3] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[4] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[5] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[6] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);if (i++ < len - 1)sendobj.Data[7] = System.Convert.ToByte("0x" + strdata.Substring(i * 3, 2), 16);int nTimeOut = 0;VCI_SetReference(m_devtype, m_devind, m_canind, 4, (byte*)&nTimeOut);if (VCI_Transmit(m_devtype, m_devind, m_canind, ref sendobj, 1) == 0){Thread.Sleep(SleppTime);}}));if (ShowSendMsg){SHOWCANID = CANID;System.Windows.Application.Current.Dispatcher.Invoke(new Action(() =>{listBox_Send.Items.Add(DateTime.Now.ToString(" HH:mm:ss") + " 发送: " + SHOWCANID + " " + FrameData);listBox_Send_Count.Content = listBox_Send.Items.Count;listBox_Send.SelectedIndex = listBox_Send.Items.Count;listBox_Send.ScrollIntoView(listBox_Send.SelectedItem);listBox_Send.ScrollIntoView(listBox_Send.SelectedIndex);}));}if (listBox_Send.Items.Count >= 9999){listBox_Send.Items.Clear();listBox_Send_Count.Content = 0;}}catch{}}#endregion
库伯勒立撤倍加福三合一拉线编码器配置工具相关推荐
- 德国KUEBLER 库伯勒拉线盒编码器维修
德国KUEBLER 库伯勒拉线盒编码器维修 前不久,维修了一只德国KUEBLER 库伯勒拉线盒编码器,感觉德国进口的产品有些意思,今天就分享给大家.客户邮寄来的是一些散件,如下图: 国内用户将拉线盒散 ...
- 软件纠错的六个阶段——《论死亡与临终》中的“库伯勒-罗丝模型”
我估计很少人知道这个库伯勒-罗丝模型或读过伊丽莎白‧库伯勒-罗丝的<论死亡与临终>这本书.先让大家了解一下这个模型. 什么是"库伯勒-罗丝模型" 库伯勒-罗丝模型(Kü ...
- 伯勒邮件群发机图文教程
1:下载最新版伯勒邮件群发机.此软件为绿色软件免安装,直接解压就可以运行主程序使用了.如果软件打不开,请先安装目录下的.net框架. 注意:软件可能被杀毒软件误报,我们承诺绿色软件不包含任何病毒.如不 ...
- ArCGIS在线应用介绍(1)希尔斯伯勒县犯罪地图
http://www.giser.net/?p=303 希尔斯伯勒县犯罪地图(Hillsborough County Crime Map) 开发语言:siliverlight ArcGIS产品:Arc ...
- 职场高手不会告诉你的10倍速学习心法!解密 “库伯学习圈” 和 “费曼学习法”...
库伯学习圈,是大卫·库伯(David Kolb)在总结了约翰·杜威(John.Dewey).库尔特·勒温(Kurt Lewin,1890-1947)和皮亚杰经验学习模式的基础之上,提出的经验学习模式, ...
- 苹果邀请开发者、媒体前往库伯提诺总部展示 ARKit 应用 ...
苹果昨天邀请了一些开发者和媒体人员前往位于加州库伯提诺的总部,旨在推广其用来为 iOS 设备打造增强现实应用的 ARKit 平台. 据 TheVerge 网站报道,展示的应用包括 IKEA Place ...
- 软件产业的设计大师:艾兰.库伯
来自:CSDN "一个所谓'优良的设计'是建立在对广泛的人类共通性和特殊群体个别意向的深刻理解之上,因此它可以对适当的信息.过程和技术进行排序,从而使那些特殊群体达到他们的专业和个人目的.& ...
- [IT名人堂]软件产业的设计大师:艾兰.库伯
"一个所谓'优良的设计'是建立在对广泛的人类共通性和特殊群体个别意向的深刻理解之上,因此它可以对适当的信息.过程和技术进行排序,从而使那些特殊群体达到他们的专业和个人目的." 出席 ...
- 从头开始写STM32F103C8T6驱动库(二)——编写系统初始化程序,配置时钟树
系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库(一)--STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库(二)--编写系统初始化程序 ...
最新文章
- 解决chrome 很卡的问题
- 数据挖掘流程(三):特征工程
- 智能合约重构社会契约(6)赛迪智能合约安全标准
- Struts原理与实践(5)
- sort对结构体排序
- ECCV 2020 论文大盘点-图像与视频分割篇
- 基于JAVA+SpringMVC+Mybatis+Vue+MYSQL的大学体育健康管理系统
- 如何系统整理需求调研报告
- [ PyQt入门教程 ] Qt Designer工具的使用
- Android团队技术随写、随写
- beamer插入参考文献并引用(BibTex)
- PS 渐变工具使用
- 【国产替代】推动安全芯片产业国产化,华秋电子与华翼微达成合作!
- 下一代防火墙(NGFW)已死!
- 高德地图使用自定义地图无效问题
- Windows HPC Server 2008 R2 下载
- office安装包百度云
- 现代电子计算机音乐制作,现代电子音乐制作利器——Alesis VI61 MIDI键盘
- 词袋模型和空间金字塔模型
- 番茄工作法总结-第一章:一次只做一件事