📄 test_wg.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <fcntl.h>
#define DEVICE_WG "/dev/wgout"
unsigned char wg_hid;
unsigned short wg_pid;
/*
调用说明:
wg_buff[3]
wg_buff[0]:存放HID
wg_buff[1]:存放PID低位
wg_buff[2]:存放PID高位
接收端:
会先接收到 HID 高到--->PID 高位--->
*/
int main(int argc,char *argv[])
{
int fd;
int val=-1;
int ret = 0;
int i;
unsigned char wg_buff[3];
if(argc<4)
{
wg_hid=0x86;
printf("hid is 0x%02x \n",wg_hid);
wg_pid=0x8b6c;
printf("pid is 0x%02x\n",wg_pid);
}
else
{
/*
wg_hid=atoi(argv[1]);
printf("hid is %d \n",wg_hid);
wg_pid=(atoi(argv[2])<<8)+atoi(argv[3]);
printf("pid is %d \n",wg_pid);
*/
wg_hid=0x33;
printf("hid is 0x%02x \n",wg_hid);
wg_pid=0x5aa5;
printf("pid is 0x%02x\n",wg_pid);
}
//总结:应用软件只管按地址用标准函数打开设备文件,系统会自动调用
if((fd=open(DEVICE_WG,O_RDONLY | O_NONBLOCK))<0)
{
perror("can not open device");
exit(1);
}
while(1)
{
printf("\n1:wg_output,0:quit :");//打印到PC端通信界面,如超级终端
scanf("%d",&val);
if(val==1)
{//Lcd_ctl_ioctl(struct inode*inode,struct file *flip,unsigned int command,unsigned long arg)
wg_buff[0]=wg_hid;
wg_buff[1]=wg_pid;
wg_buff[2]=wg_pid>>8;
ret =ioctl(fd,1,wg_buff);
//for(i=0;i<0xfff;i++);
//ret =ioctl(fd,1,wg_buff);
//for(i=0;i<0xfff;i++);
//ret =ioctl(fd,1,wg_buff);
//printf("\n");
//printf("wg_output return %d \n", ret);
}
else if(val==0) {
close(fd);
exit(0);
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -