手持PDA,手持数据采集器,盘点 机,数据采集器 服务热线:400-6636-496

国内专业的行业手持终端提供商,产品与解决方案广泛应用于医药,物流快递、零售、制造行 业。

PT300手持机特色应用编程技术

来源: 时间:2014-05-28

 背光调节

通过调用set_brightness函数来调节背光,这个函数会与底层驱动交互来调整背光亮度,我们的系统中都已经做好了这些驱动。set_brightness函数封装在动态链接库HDI_API.dll文件中,我们在产品光盘里会提供HDI_API.dllHDI_API.libHDI_API.h三个文件,其中第一个是动态库文件,第二个是引入库文件,第三个是头文件。以下介绍的几个函数,也都封装在这个动态链接库里面。

bool set_brightness(int percen_value);

参数percen_value用来调整背光亮度,设置为0则完全关闭背光,设置为100则背光调节到最亮。这个参数用户可以根据自己的实际需要来调整,非常方便。

 蜂鸣器

       通过调用Beep函数启动蜂鸣器蜂鸣。

       bool Beep(DWORD dwDelay);

       参数dwDelay用来设置蜂鸣器的蜂鸣时间,单位是毫秒,如蜂鸣一秒钟,可以通过如下代码来实现:

       Beep(1000);

       只用这一行代码就可以了。

 屏幕旋转

       屏幕旋转可以通过rotate_screen函数来完成。

       bool rotate_screen(int mode);

       参数mode设置为1,屏幕旋转90度;设置为2,屏幕旋转180度;设置为3,屏幕旋转270度;设置为0,屏幕恢复正常显示。具体的效果可以通过实际操作来观察一下。

 IO输出

       PT300手持机提供了IO输出输入高低电平的功能,可以方便对下位机的控制。

       bool set_digital_output(int set_level, int PORT_NO);

       参数set_level设置为1,表示输出高电平;设置为0,表示输出低电平。PORT_NO是端口号,可以设置为1,2,3,4等等。

 IO输入

       通过read_digital_input函数,来进行输入口的高低电平检测。

       bool read_digital_input(int * port_level,int port_NO);

       port_NO同样为端口号,指针型参数port_level作为输出型参数,如果为0,则相应的输入口检测到了低电平,如果为2则相应的输入口检测到了高电平。

 看门狗

 打开看门狗

在对看门狗进行操作之前,需要打开看门狗,加载看门狗驱动。可以通过如下代码实现:

首先定义一个全局变量:HANDLE g_hWDT = NULL;

然后通过如下代码打开看门狗:

g_hWDT = CreateFile(TEXT("WDT1:"),GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

if (g_hWDT == INVALID_HANDLE_VALUE)

{

       AfxMessageBox(TEXT("Cannot open WDT")); //打开失败

}

       如果看门狗成功打开,则可以进行接下来的操作。以下操作的示例代码中用到了几个宏定义做为DeviceIoControl函数的参数,可以添加在源文件的开头:

#define IOCTL_FEED_WATCHDOG               1

#define IOCTL_ENABLE_WATCHDOG         2

#define IOCTL_DISABLE_WATCHDOG        3

#define IOCTL_SET_WATCHDOG                  4

 

 使能看门狗

       可以通过DeviceIoControl函数来完成,实现代码如下:

DeviceIoControl(g_hWDT,IOCTL_ENABLE_WATCHDOG,NULL,0,NULL,0,NULL,NULL);

 

 禁用看门狗

       可以通过DeviceIoControl函数来完成,实现代码如下:

DeviceIoControl(g_hWDT,IOCTL_DISABLE_WATCHDOG,NULL,0,NULL,0,NULL,NULL);

 

 设置看门狗定时时间

       以定时10秒钟为例,可以通过如下代码完成:

g_time = 10;

DeviceIoControl(g_hWDT,IOCTL_SET_WATCHDOG,&g_time,1,NULL,0,NULL,NULL);

 喂狗

       可以通过DeviceIoControl函数来完成,实现代码如下:

DeviceIoControl(g_hWDT,IOCTL_FEED_WATCHDOG,NULL,0,NULL,0,NULL,NULL);

       其中喂狗也可以通过HDI_API.dll文件中封装的feed_dog函数来完成。

       bool feed_dog(void);