用2个红外手持器发送字符串和接收字符串并返回发送状态,我做了一个字符收发,但不知道该如何写字符串的收发。
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
#include <time.h>
#include <io.h>
#include <fcntl.h>
#include <process.h>
#include <stdio.h>
#include <infrared.h>
#include <htlcd.h>
#include <htxlcd.h>
#include <commplus.h>
#include <htproces.h>
#include <barcode.h>
#include <htosex.h>
main()
{
unsigned char ascch, auxb, auxstat,workmode,commport,send,akey,str[7];
unsigned int baudrate,inRx,i;
printf("打开红外电源:\r\n");
IRPowerCtrl(_IRPowON); //红外电源控制 122
SetIRMFreq(38000); //设制红外调制频率 38k 122
getch();
printf("打开红外输出:\r\n");
SetIROutput(0);
do {
} while (!kbhit()); //kbhit()用来检测键盘是否有按键,有则返回-1,没有则返回0
printf("设置红外输出:\r\n");
SetIROutput(2);
do {
} while (!kbhit());
getch();
GetCommMode(&workmode, &commport, &baudrate); //取当前通讯串口、通讯方式和波特率 107
SetCommMode(3, 1, 1200); //设置通讯串口、通讯方式和波特率 107
EnableRx(0);
printf("请输入一些字符串并发送: \r\n");
send = 0;
do {
if (kbhit())
{
akey=getch();
if (akey !=auxb){
if (!send)
send = 1;
PutAuxByte(akey);
printf("%c\r\n",akey);
}
}
if (ExistAuxBGot(&auxb,&auxstat))
{ if (send)
printf("\r\n");
send = 0;
printf("%c\n",auxb);
}
} while (akey !=27);
IRPowerCtrl(_IRPowOFF); //红外电源控制 122
SetIRMFreq(0); //设制红外调制频率 0 122
DisableRx(); //禁止串行口接收任何数据
SetCommMode(workmode, commport, baudrate);
return 0;
}
这个代码该如何修改实现字符串收发,谢谢了