📄 commtest.cpp
字号:
#include <vxworks.h>
#include <strLib.h>
#include <stdio.h>
#include <ioLib.h>
#include <logLib.h>
#include <ioctl.h>
#include <selectLib.h>
#include <string.h>
#include <taskLib.h>
#include "intLib.h"
#include "types/vxTypesOld.h"
#include "iv.h"
#include "sysLib.h"
#include "semLib.h"
#define MUL_INT_NUM 35
#define MUL_R_INT 0x000d43ff
char mQuit;
int sFd;
int tId;
struct fd_set data_fds;
char accept_buf[100];
SEM_ID semMulId;
void mul_bus_int(void)
{
semGive(semMulId);
}
void send_data(void)
{
sFd = open("/tyCo/0", O_RDWR, 0);
int i, num;
i = 0;
unsigned char tmp;
char buff[] = "Hello!\n";
int len;
int width;
ioctl(sFd, FIOSETOPTIONS, OPT_RAW);
ioctl(sFd, FIOBAUDRATE, 9600);
// ioctl(sFd, SIO_HW_OPTS_SET, CS8|STOPB|PARENB|PARODD);
ioctl(sFd,FIOFLUSH,0);
while(mQuit)
{
semTake(semMulId, WAIT_FOREVER);
bcopyBytes((char *)(MUL_R_INT),(char *)tmp,1);
// printf("Hello\n");
/* ioctl(sFd,FIOFLUSH,0);
// FD_ZERO(&data_fds);
// FD_SET(sFd, &data_fds);
// width = sFd + 1;
if(select(width, NULL, &data_fds, NULL, NULL) == ERROR)
logMsg("Select Error!\n", 0, 0, 0, 0, 0, 0);
if(FD_ISSET(sFd, &data_fds));
*/
len = write(sFd,buff,sizeof(buff));
logMsg("%d\t%d\n",i++, len, 0, 0, 0, 0);
}
ioctl(sFd,FIOFLUSH,0);
close(sFd);
}
void st()
{
unsigned char tmp;
mQuit = 1;
semMulId = semBCreate (SEM_Q_FIFO, SEM_EMPTY);
intConnect(INUM_TO_IVEC(MUL_INT_NUM),(VOIDFUNCPTR)mul_bus_int,1);
if((tId =taskSpawn ("tSend_data",235,VX_FP_TASK,2000,(FUNCPTR)send_data,0,0,0,0,0,0,0,0,0,0))==ERROR)
{
logMsg("task spawn error in recv_data!!\n",0,0,0,0,0,0);
return;
}
bcopyBytes((char *)(MUL_R_INT),(char *)tmp,1);
}
void ss()
{
mQuit = 0;
close(sFd);
taskDelete(tId);
printf("exit\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -