一种智能物联终端仿真平台的实现方法技术

技术编号:37376583 阅读:13 留言:0更新日期:2023-04-27 07:19
本发明专利技术公开了一种智能物联终端仿真平台的实现方法,该方法包括开发调试环境搭建和仿真开发平台搭建,所述开发调试环境搭建具体包括如下步骤:Microsoft Visual Studio工程建立,建立一个MFC AppWizad(exe)工程,此工程基于Dialog,方便在对话框上放置模拟液晶控件和模拟按键控件,将原有代码文件引入此工程,如果没有,新建代码文件到此工程。本发明专利技术所述的一种智能物联终端仿真平台的实现方法,本发明专利技术在分析嵌入式软件交叉开发的基础上,基于Windows操作系统下,利用Microsoft Visual Studio和开源软件cygwin构建一个交叉开发环境,搭建了基于智能物联终端仿真开发平台,可在Windows和Linux不同操作系统直接进行跨平台模拟,可在PC端对设备模拟仿真,进行调试,速度快,效率高。效率高。效率高。

【技术实现步骤摘要】
一种智能物联终端仿真平台的实现方法


[0001]本专利技术涉及软件仿真领域,具体涉及一种智能物联终端仿真平台的实现方法。

技术介绍

[0002]目前对于大部分软件开发人员而言,主流的操作系统是Windows,但是随着嵌入式系统在各个领域的广泛应用,越来越多的人员加入到Linux环境下的嵌入式系统开发和软件开发中来,但是对于习惯了Windows的人员来讲,完全舍弃Windows突然完全转向Linux是比较艰难的,嵌入式Linux的开发环境也日益受到越来越多的人们重视,特别是基于Windows的交叉环境开发更是作为大家的焦点。
[0003]目前嵌入式Linux的应用开发存在的主要问题:
[0004]1、Linux环境下编辑工具可视化功能不强,大部分开发人员对Linux下的编辑工具不是很熟悉;
[0005]2、目前大部分嵌入式Linux的应用开发是在NFS环境下进行,开发工程师主要通过串口打印信息做为调试手段,这种方式速度慢,效率低。

技术实现思路

[0006]本专利技术的主要目的在于提供一种智能物联终端仿真平台的实现方法,可以有效解决
技术介绍
中:目前嵌入式Linux的应用开发存在的主要问题:1、Linux环境下编辑工具可视化功能不强,大部分开发人员对Linux下的编辑工具不是很熟悉;2、目前大部分嵌入式Linux的应用开发是在NFS环境下进行,开发工程师主要通过串口打印信息做为调试手段,这种方式速度慢,效率低的技术问题。
[0007]为实现上述目的,本专利技术采取的技术方案为:
[0008]一种智能物联终端仿真平台的实现方法,该方法具体包括如下步骤:
[0009]步骤一:该方法包括开发调试环境搭建和仿真开发平台搭建,所述开发调试环境搭建具体包括如下步骤:
[0010]步骤一:Microsoft Visual Studio工程建立,建立一个MFC AppWizad(exe)工程,此工程基于Dialog,方便在对话框上放置模拟液晶控件和模拟按键控件,将原有代码文件引入此工程,如果没有,新建代码文件到此工程;
[0011]步骤二:cygwin引入,cygwin是以共享库cygwin1.dll的形式提供,并没有提供cygwin1.lib,在Microsoft Visual Studio中可通过LoadLibrary载入动态链接库,将它映射到当前进程使用的地址空间,用于获取其模块句柄;
[0012]步骤三:平台程序和Linux程序之间的接入点,main函数是Linux程序运行的主入口点,而此平台需要在完成windows的环境初始化后,调用main来实现Linux代码的调用。
[0013]作为本专利技术的进一步方案,所述步骤二中,获取其模块句柄后,须获取cygwin的初始化函数cygwin_dll_init,并第一个运行来初始化cygwin初始运行环境,通过GetProcAddress检索cygwin1.dll中的输出库函数地址,对于需要的函数可以导出,对于不
需要的函数可以不导出,函数的原型可通过unix的库函数进行查找,通过typedef进行自定义声明。
[0014]作为本专利技术的进一步方案,所述步骤三中,调用方法如下:
[0015][0016][0017]在Microsoft Visual Studio中可以直接调用VC_Entry即可进入main函数,main函数以后的代码都是Linux环境下实际运行的代码,从而实现了在此仿真平台调试Linux代码。
[0018]作为本专利技术的进一步方案,所述仿真开发平台搭建具体包括如下步骤:
[0019]步骤1:模拟点阵液晶的实现,在智能用电设备都大都采用点阵液晶,为实现在模拟开发环境中可开发调试点阵液晶人机界面,采用Microsoft Visual Studio中的CEdit控件,定义成实际液晶的点阵阵列大小,在Microsoft Visual Studio的对话框中来实现实际液晶的模拟显示,使用CEdit的成员函数GetDC获取CEdit的CDC句柄,再使用CDC的成员函数SetPixel来实现对应单像素绘画,此方式支持彩色绘画;
[0020]步骤2:按键的实现,在对话框中建立与实际设备相同数量的按钮控件,在按钮控件的实现函数中将相应的按键消息传递到和实际设备相同的按键函数接口,得到模拟器;
[0021]步骤3:串口的实现,在嵌入式Linux开发环境中,打开串口的操作一般都是采用open("/dev/ttyS0",

)的方式,在cygwin的支持下,在WINDOWS打开COM串口,使用相同的代码即可实现,而在WINDOWS下,上述的操作可打开PC的COM1口,PC的COM口分配可在“计算机管理|设备管理器|端口(COM和LPT)”中查看,目前PC机的标准配置一般是一个COM口,对于COM的扩展可购买USB串口转换器或者PCI串口转换卡来进行多个COM口的配置;
[0022]步骤4:网络的实现,通过使用C标准库函数来编写基于TCP/IP的SOCKET通信,通过socket函数创建socket句柄,使用setsockopt设置参数,使用ioctl进行控制,使用read/write进行读写,使用close关闭句柄,在cygwin的支持下,此类函数在WINDOWS的下对网络的操作是完全一致的。
[0023]作为本专利技术的进一步方案,所述步骤3中,在电网智能设备中常用的串口外设设备
中,比如GPRS模块、载波模块、GPS模块、红外端口、RS485通讯端口,都可以在cygwin的支持下,加上相应的模块工装来实现在WINDOWS下的Microsoft Visual Studio编辑编译环境进行模块和通道的开发调试工作,其简易应用部分代码如下:
[0024]nfd=open("/dev/ttyS0",O_RDWR|O_NOCTTY|O_NDELAY);
[0025]cfsetispeed(&new_cfg,speed);
[0026]cfsetospeed(&new_cfg,speed);
[0027]tcflush(nfd,TCIFLUSH);
[0028]tcsetattr(nfd,TCSANOW,&new_cfg);
[0029]read(nfd,pBuf,nLen);
[0030]write(nfd,pBuf,nLen);
[0031]close(nfd);
[0032]以上代码实现打开串口,设置串口波特率、数据位、停止位等参数,读写串口,关闭串口;在cygwin的支持下,上述函数都可在WINDOWS下执行并可通过PC机的相应COM口进行通讯。
[0033]作为本专利技术的进一步方案,所述步骤4中,编写代码如下:
[0034][0035][0036]与现有技术相比,本专利技术具有如下有益效果:
[0037]本专利技术在分析嵌本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智能物联终端仿真平台的实现方法,其特征在于:该方法包括开发调试环境搭建和仿真开发平台搭建,所述开发调试环境搭建具体包括如下步骤:步骤一:Microsoft VisualStudio工程建立,建立一个MFC AppWizad(exe)工程,此工程基于Dialog,方便在对话框上放置模拟液晶控件和模拟按键控件,将原有代码文件引入此工程,如果没有,新建代码文件到此工程;步骤二:cygwin引入,cygwin是以共享库cygwin1.dll的形式提供,并没有提供cygwin1.lib,在Microsoft Visual Studio中可通过LoadLibrary载入动态链接库,将它映射到当前进程使用的地址空间,用于获取其模块句柄;步骤三:平台程序和Linux程序之间的接入点,main函数是Linux程序运行的主入口点,而此平台需要在完成windows的环境初始化后,调用main来实现Linux代码的调用。2.根据权利要求1所述的一种智能物联终端仿真平台的实现方法,其特征在于:所述步骤二中,获取其模块句柄后,须获取cygwin的初始化函数cygwin_dll_init,并第一个运行来初始化cygwin初始运行环境,通过GetProcAddress检索cygwin1.dll中的输出库函数地址,对于需要的函数可以导出,对于不需要的函数可以不导出,函数的原型可通过unix的库函数进行查找,通过typedef进行自定义声明。3.根据权利要求1所述的一种智能物联终端仿真平台的实现方法,其特征在于:所述步骤三中,调用方法如下:void*main_Entry(void*arg){main();return NULL;}void VC_Entry(void){pthread_t t;pthread_create(&t,NULL,main_Entry,NULL);}在Microsoft Visual Studio中可以直接调用VC_Entry即可进入main函数,main函数以后的代码都是Linux环境下实际运行的代码,从而实现了在此仿真平台调试Linux代码。4.根据权利要求1所述的一种智能物联终端仿真平台的实现方法,其特征在于:所述仿真开发平台搭建具体包括如下步骤:步骤1:模拟点阵液晶的实现,在智能用电设备都大都采用点阵液晶,为实现在模拟开发环境中可开发调试点阵液晶人机界面,采用Microsoft Visual Studio中的CEdit控件,定义成实际液晶的点阵阵列大小,在Microsoft VisualStudio的对话框中来实现实际液晶的模拟显示,使用CEdit的成员函数GetDC获取CEdit的CDC句柄,再使用CDC的成员函数SetPixel来实现对应单像素绘画,此方式支持彩色绘画;步骤2:按键的实现,在对话框中建立与实际设备相同数量的按钮控件,在按钮控件的实现函数中将相应的按键消息传递到和实际设备相同的按键函数接口,得到模拟器;步骤3:串口的实现,在嵌入式Linux开发环境中,打开串口的操作一般都是采用open
("/dev/ttyS0",

)的方式,在...

【专利技术属性】
技术研发人员:董晓峰
申请(专利权)人:青岛启超微信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1