#include <utility.h>
#include <ansi_c.h>
#include <tcpsupp.h>
#include <cvirte.h>
#include <userint.h>
#include "testcli_ui.h"
static int panelHandle;
static CmtThreadPoolHandle poolHandle = 0;
#define MAX_THREADS 10
static unsigned int chandle = 0;
static int tfID;
int main (int argc, char *argv[]) {
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
SetStdioPort (CVI_STDIO_WINDOW);
SetSleepPolicy(VAL_SLEEP_MORE);
CmtNewThreadPool (MAX_THREADS, &poolHandle);
if ((panelHandle = LoadPanel (0, "testcli_ui.uir", PANEL)) < 0)
return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK SocketCB (unsigned handle, int xType, int errCode, void *callbackData) {
int nb = 0 ;
const int maxlen=0xFF;
char msg[maxlen];
for (int i=0;i<maxlen; i++) msg[i]=0;
switch (xType) {
case TCP_DISCONNECT:
printf("TCP_DISCONNECT ErrorString %s\n",GetTCPErrorString
(errCode
));
printf("TCP_DISCONNECT SystemErrorString %s\n",GetTCPSystemErrorString
());
//DisconnectFromTCPServer (&chandle);
chandle = 0;
break;
case TCP_DATAREADY: {
int hdr[2]={0,0};
nb = ClientTCPRead(handle,&hdr[0],8,1000);
int size = hdr[1] - 8;
if (size>maxlen) size=maxlen;
nb = 0;
while (nb < size) {
int retval = ClientTCPRead(handle,&msg[nb],size-nb,1000);
if (retval<1) break;
nb += retval;
}
printf("Received RECID %d LEN %d: %s\n", hdr
[0], hdr
[1],msg
);
break;
}
}
return 0;
}
int CVICALLBACK ExitCB (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2) {
switch (event) {
case EVENT_COMMIT:
QuitUserInterface (0);
break;
}
return 0;
}
int CVICALLBACK SendCB (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2) {
char data[0xFF];
char *msg = &data[8];
int *hdr = data;
static int ncount=0;
switch (event) {
case EVENT_COMMIT:
GetCtrlVal(panel,PANEL_TXT , msg);
sprintf(msg
,"%s %d\n", msg
, ncount
++);
hdr[0]=ncount%4;
ClientTCPWrite(chandle,data,hdr[1],1000); // init
break;
}
return 0;
}
int CVICALLBACK ConnectCB (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2) {
switch (event) {
case EVENT_COMMIT:
ConnectToTCPServerEx (&chandle, 3210, "192.168.1.254", SocketCB, NULL, 0, TCP_ANY_LOCAL_PORT);
break;
}
return 0;
}