Files
aqhomecontrol/aqhome/libtest.c
2023-01-25 16:29:36 +01:00

110 lines
2.2 KiB
C

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "aqhome/serial.h"
#include <gwenhywfar/debug.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/gwentime.h>
#include <gwenhywfar/buffer.h>
#include <unistd.h>
int testRecv()
{
AQH_SERIAL *sr;
int rv;
int i;
GWEN_BUFFER *dbuf;
fprintf(stdout, "Opening device...\n");
sr=AQH_Serial_new("/dev/ttyUSB0", 240);
rv=AQH_Serial_Open(sr);
if (rv<0) {
DBG_ERROR(NULL, "ERROR opening device (%d)", rv);
AQH_Serial_free(sr);
return 2;
}
fprintf(stdout, "Device open, waiting for packets\n");
dbuf=GWEN_Buffer_new(0, 256, 0, 1);
for (i=0; ; i++) {
uint8_t buffer[1024];
GWEN_TIME *ti;
fprintf(stdout, "Waiting for packet...\n");
rv=AQH_Serial_Recv(sr, buffer, sizeof(buffer)-1);
if (rv<0)
break;
ti=GWEN_CurrentTime();
GWEN_Time_toString(ti, "YYYY-MM-DD hh:mm:ss", dbuf);
fprintf(stdout, "%s: Received:\n", GWEN_Buffer_GetStart(dbuf));
GWEN_Text_DumpString(buffer, rv, 2);
GWEN_Time_free(ti);
GWEN_Buffer_Reset(dbuf);
fprintf(stdout, "\n");
}
GWEN_Buffer_free(dbuf);
AQH_Serial_Close(sr);
AQH_Serial_free(sr);
return 0;
}
int testSend()
{
AQH_SERIAL *sr;
int rv;
int i;
GWEN_BUFFER *dbuf;
uint8_t sendBuf[5]={0x01, 0x02, 0xdb, 0x00, 0xd8 };
uint8_t sendBuf2[2]={0x02, 0xdb };
fprintf(stdout, "Opening device...\n");
sr=AQH_Serial_new("/dev/ttyUSB0", 240);
rv=AQH_Serial_Open(sr);
if (rv<0) {
DBG_ERROR(NULL, "ERROR opening device (%d)", rv);
AQH_Serial_free(sr);
return 2;
}
fprintf(stdout, "Device open, waiting for packets\n");
dbuf=GWEN_Buffer_new(0, 256, 0, 1);
for (i=0; ; i++) {
GWEN_TIME *ti;
//rv=AQH_Serial_Send(sr, sendBuf, sizeof(sendBuf));
rv=AQH_Serial_SendPacket(sr, 1, sendBuf2, sizeof(sendBuf2));
if (rv<0)
break;
ti=GWEN_CurrentTime();
GWEN_Time_toString(ti, "YYYY-MM-DD hh:mm:ss", dbuf);
fprintf(stdout, "%s: Packet %d sent.\n", GWEN_Buffer_GetStart(dbuf), i);
GWEN_Time_free(ti);
GWEN_Buffer_Reset(dbuf);
sleep(3);
}
GWEN_Buffer_free(dbuf);
AQH_Serial_Close(sr);
AQH_Serial_free(sr);
return 0;
}
int main(void)
{
//return testRecv();
return testSend();
}