#include "Aria.h"
#include "ArNetworking.h"
ArClientBase client;
void jpegHandler(ArNetPacket *packet)
{
unsigned int width;
unsigned int height;
unsigned char jpeg[50000];
int jpegSize;
FILE *file;
width = packet->bufToUByte2();
height = packet->bufToUByte2();
printf("Got jpeg of %d x %d\n", width, height);
jpegSize = packet->getDataLength() - packet->getDataReadLength();
printf("Jpeg %d long\n", jpegSize);
packet->bufToData((char *)jpeg, jpegSize);
if ((file = fopen("client.jpg", "wb+")) != NULL)
{
fwrite(jpeg, jpegSize, 1, file);
fclose(file);
}
else
printf("Could not write file\n");
}
int main(int argc, char **argv)
{
Aria::init();
ArGlobalFunctor1<ArNetPacket *> jpegHandlerCB(&jpegHandler);
ArNetPacket packet;
std::string hostname;
int port;
printf("Usage: %s [hostname>] [port]\n", argv[0]);
if (argc >= 2)
hostname = argv[1];
else
hostname = "localhost";
if (argc >= 3)
port = atoi(argv[2]);
else
port = 7070;
if (!client.blockingConnect(hostname.c_str(), port))
{
printf("Could not connect to server, exiting\n");
exit(1);
}
client.addHandler("getPictureCam1", &jpegHandlerCB);
client.request("getPictureCam1", -2);
packet.uByteToBuf(90);
client.requestOnce("getPictureCam1", &packet);
client.request("getPictureCam1", -1);
client.run();
Aria::shutdown();
return 0;
}