📄 uitransrecord.c
字号:
#include <pr2k.h>
#include <typedefine.h>
#include <fatsys.h>
#include <database.h>
#include <db_create.h>
#ifdef __WIN32__
#include <uiuart.h>
#include <uiTransfer.h>
#include <uiTransRecord.h>
#else
#include <uart.h>
#include <Transfer.h>
#include <TransRecord.h>
#endif
// only for debug , complier and liner
int IrDA_Init(void)
{
return 1;
}
DLL_EXP(int) IrSendRecord(char *buffer, int len)
{
int ret, i, j, blockLen, bgLen;
int packetNo=0;
unsigned char packetBuf[1024];
char *pRecord;
TDeviceState DS;
DS.BaudRate = 9600;
DS.Parity = NOPARITY;
//DS.StopBits = ONESTOPBIT;
DS.StopBits = TWOSTOPBITS;
IrDA_Open("COM2", &DS);
#if 1
bgLen = swapInt(len);
memcpy(packetBuf, &bgLen, 4);
memcpy(&packetBuf[4], buffer, len);
com_Send(COM2, packetBuf, 1024);
#endif
/*
while(1)
{
for(i=0; i<256; i++)
{
j = 0x1000;
//while(j--);
com_SendByte(COM2, i);
}
}
*/
#if 0
ret = MasterHandShake(COM2, 60);
if(ret==STATUS_ERR)
{
com_Close(COM2);
return IR_ERR_HANDSHAKE;
}
ret = SendPackData(COM2, packetNo++, (unsigned char *)&len, 4);
if(ret!=STATUS_OK)
{
com_Close(COM2);
return IR_ERR_TRANSFER;
}
pRecord = buffer;
while(len)
{
blockLen = (len>PACKET_LEN)?PACKET_LEN:len;
len -= blockLen;
memcpy(packetBuf, pRecord, blockLen);
pRecord += blockLen;
ret = SendPackData(COM2, packetNo++, packetBuf, blockLen);
if(ret!=STATUS_OK)
{
//db_close(hDB);
com_Close(COM2);
return IR_ERR_TRANSFER;
}
}
#endif
//db_close(hDB);
com_Close(COM2);
return STATUS_OK;
}
DLL_EXP(int) IrReceiveRecord(char *buffer, int *len)
{
int ret, i, receiveLen, recordLen, curLen;
int packetNo=0;
int t0, t1;
unsigned char packetBuf[256];
char *pRecord;
unsigned char byData;
TDeviceState DS;
unsigned char byTemp;
DS.BaudRate = 9600;
//DS.BaudRate = 4800;
DS.Parity = NOPARITY;
DS.DataBits = 8;
//DS.StopBits = ONESTOPBIT;
DS.StopBits = TWOSTOPBITS;
IrDA_Open("COM2", &DS);
// while(1)
// com_SendByte(COM2, HS_SLAVE_ACK);
#if 1
t0 = _GetTickCount();
com_ReceiveByte(COM2, &byData);
#ifndef __WIN32__
while(1)
{
ret = PeepUartBuffer(COM2);
if(ret==STATUS_OK)
break;
t1 = _GetTickCount();
if((t1-t0)>20)
{
com_Close(COM2);
return STATUS_ERR;
}
}
#endif
ret = com_Receive(COM2, packetBuf, 1024);
receiveLen = *(int *)(&packetBuf);
if(receiveLen>1024)
receiveLen = 1024;
*len = receiveLen;
memcpy(buffer, &packetBuf[4], receiveLen);
#endif
#if 0
ret = SlaveHandShake(COM2, 60);
if(ret!=STATUS_OK)
{
com_Close(COM2);
return IR_ERR_HANDSHAKE;
}
ret = ReceivePackData(COM2, packetNo++, (unsigned char *)&recordLen);
if(ret!=4)
{
com_Close(COM2);
return IR_ERR_RECEIVE;
}
pRecord = buffer;
curLen = 0;
while(curLen!=recordLen)
{
receiveLen = ReceivePackData(COM2, packetNo++, packetBuf);
if(!receiveLen)
{
com_Close(COM2);
return IR_ERR_RECEIVE;
}
memcpy(pRecord, packetBuf, receiveLen);
pRecord += receiveLen;
curLen += receiveLen;
}
#endif
com_Close(COM2);
return STATUS_OK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -