[tuxdroid-svn] r214 - svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment va
Status: Beta
Brought to you by:
ks156
From: svnlook:warning@affinitic.be:cannot s. L. l. <c2m...@c2...> - 2007-03-29 13:19:57
|
Author: svnlook: warning: cannot set LC_CTYPE locale Date: svnlook: warning: environment variable LANG is EN New Revision: 214 Added: daemon/branches/CPPDaemon/Common.h daemon/branches/CPPDaemon/MsgQueue.cpp daemon/branches/CPPDaemon/MsgQueue.h daemon/branches/CPPDaemon/UsbHandler.cpp daemon/branches/CPPDaemon/UsbHandler.h Modified: daemon/branches/CPPDaemon/Makefile daemon/branches/CPPDaemon/TCP.cpp daemon/branches/CPPDaemon/TCP.h daemon/branches/CPPDaemon/main.cpp Log: srikantap 2007-03-29 15:19:41 +0200 (Thu, 29 Mar 2007) 33 Basic USB Communication framework svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment variable LANG is EN svnlook: warning: please check that your locale name is correct Added: daemon/branches/CPPDaemon/Common.h =================================================================== --- daemon/branches/CPPDaemon/Common.h (rev 0) +++ daemon/branches/CPPDaemon/Common.h 2007-03-29 13:19:41 UTC (rev 214) @@ -0,0 +1,2 @@ +#define FTOK_PATH_NAME "/tmp/tmp.tmp" +#define USB_QUEUE_MSG_TYPE 10 Property changes on: daemon/branches/CPPDaemon/Common.h ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Modified: daemon/branches/CPPDaemon/Makefile =================================================================== --- daemon/branches/CPPDaemon/Makefile 2007-03-29 12:18:40 UTC (rev 213) +++ daemon/branches/CPPDaemon/Makefile 2007-03-29 13:19:41 UTC (rev 214) @@ -1,6 +1,6 @@ default: - g++ main.cpp Socket.cpp TCP.cpp -lpthread + g++ main.cpp Socket.cpp TCP.cpp MsgQueue.cpp UsbHandler.cpp -lpthread clean: rm -f *.out *.o Added: daemon/branches/CPPDaemon/MsgQueue.cpp =================================================================== --- daemon/branches/CPPDaemon/MsgQueue.cpp (rev 0) +++ daemon/branches/CPPDaemon/MsgQueue.cpp 2007-03-29 13:19:41 UTC (rev 214) @@ -0,0 +1,99 @@ + +#include "MsgQueue.h" +#include <stdio.h> +#include <sys/types.h> +#include <sys/msg.h> +#include <sys/time.h> +#include <string.h> +#include <unistd.h> + +typedef struct +{ + long type; + char data[1024]; +} MsgBuf; + +MsgQueue::MsgQueue(int key) +{ + if((id = msgget((key_t)key, IPC_CREAT|0777)) == -1) + perror("msgget"); +} + + +MsgQueue::MsgQueue(int key,int perm) +{ + if((id = msgget((key_t)key, perm)) == -1) + perror("msgget"); +} + +MsgQueue::~MsgQueue() +{ +} + +void MsgQueue::release() +{ + msgctl(id,IPC_RMID,NULL); +} + +int MsgQueue::getRandomType() +{ + struct timeval t1; + struct timezone tz; + + gettimeofday(&t1,&tz); + return (t1.tv_usec % 100000) + 1; +} + +int MsgQueue::send(string msg) +{ + return send((char *)msg.c_str(),msg.size()); +} + +int MsgQueue::send(string msg, long type) +{ + return send((char *)msg.c_str(),msg.size(),type); +} + +int MsgQueue::send(char *buf, int len) +{ + return send(buf,len,0); +} + +int MsgQueue::send(char *buf, int len, long type) +{ + MsgBuf packet; + + packet.type = type; + memset(packet.data,0,sizeof(packet.data)); + memcpy(packet.data,buf,len); + + return msgsnd(id, &packet, len, 0); +} + +int MsgQueue::recv(char *buf, int len) +{ + int ret; + MsgBuf packet; + + ret = msgrcv(id, &packet, len,0,0); + + memcpy(buf,packet.data,len); + + return ret; +} + +int MsgQueue::recv(char *buf, int len, long type) +{ + int ret; + MsgBuf packet; + + memset(packet.data,'\0',len); + + packet.type = type; + + ret = msgrcv(id, &packet, len,type,0); + + memcpy(buf,packet.data,len); + + return ret; +} Property changes on: daemon/branches/CPPDaemon/MsgQueue.cpp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Added: daemon/branches/CPPDaemon/MsgQueue.h =================================================================== --- daemon/branches/CPPDaemon/MsgQueue.h (rev 0) +++ daemon/branches/CPPDaemon/MsgQueue.h 2007-03-29 13:19:41 UTC (rev 214) @@ -0,0 +1,32 @@ +#ifndef MSGQUEUE_H +#define MSGQUEUE_H + + +#include <sys/types.h> +#include <sys/ipc.h> +#include <string> + +using namespace std; + +class MsgQueue +{ + public: + + MsgQueue(int key); + MsgQueue(int key ,int perm); + ~MsgQueue(); + void release(); + int getRandomType(); + + int send(string msg); + int send(string msg,long type); + int send(char *buf, int len); + int send(char *buf, int len, long type); + int recv(char *buf, int len); + int recv(char *buf, int len, long type); + + private: + int id; +}; + +#endif Property changes on: daemon/branches/CPPDaemon/MsgQueue.h ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Modified: daemon/branches/CPPDaemon/TCP.cpp =================================================================== --- daemon/branches/CPPDaemon/TCP.cpp 2007-03-29 12:18:40 UTC (rev 213) +++ daemon/branches/CPPDaemon/TCP.cpp 2007-03-29 13:19:41 UTC (rev 214) @@ -5,6 +5,7 @@ #include <strings.h> #include <pthread.h> +#include "Common.h" #include "TCP.h" #include "Socket.h" @@ -175,6 +176,16 @@ CommManager::CommManager() : clients (new Client[10]) { + key_t key; + + if ((key = ftok(FTOK_PATH_NAME, 'S')) == -1) + { + perror("ftok"); + } + + usbQueue = new MsgQueue(key); + + } void* CommManager::run() @@ -233,9 +244,11 @@ **/ for (int i = 0; i < 10; i++) { + // printf("processing %d\n", i); if(clients[i].is_valid()) { string str; + // printf("Listening to %d\n", i); int recv_ret = clients[i].recv(str); if(recv_ret < 0) { @@ -246,25 +259,15 @@ } else { -#if 0 - char buf[MESSAGE_SIZE]; - const char *const_str = str.c_str(); - ::memcpy(buf, const_str, MESSAGE_SIZE); + Message msg (str.c_str()); + //msg.dump(); - printf("\n********** MSG from %d *********\n", i); - char buf[16]; - for (int i = 0; i < MESSAGE_SIZE; i++) + // TODO: USB.dispatch(clients[i].msg); + int s = usbQueue->send((char *) str.c_str(), MESSAGE_SIZE, USB_QUEUE_MSG_TYPE); + if (s < 0) { - buf[i] = str[i]; - //printf("%d ", str[i]); - printf("%d ", buf[i]); + perror ("Msg send"); } - printf("\n*******************\n"); -#endif - - Message msg (str.c_str()); - msg.dump(); - // TODO: USB.dispatch(clients[i].msg); } } } Modified: daemon/branches/CPPDaemon/TCP.h =================================================================== --- daemon/branches/CPPDaemon/TCP.h 2007-03-29 12:18:40 UTC (rev 213) +++ daemon/branches/CPPDaemon/TCP.h 2007-03-29 13:19:41 UTC (rev 214) @@ -1,5 +1,6 @@ #include "Socket.h" +#include "MsgQueue.h" #include <sys/socket.h> #include <sys/types.h> @@ -61,6 +62,7 @@ Client *clients; struct sockaddr_in tcp_server_sockaddr; Socket sockId; + MsgQueue *usbQueue; }; class CommManager::Client : public Socket Added: daemon/branches/CPPDaemon/UsbHandler.cpp =================================================================== --- daemon/branches/CPPDaemon/UsbHandler.cpp (rev 0) +++ daemon/branches/CPPDaemon/UsbHandler.cpp 2007-03-29 13:19:41 UTC (rev 214) @@ -0,0 +1,37 @@ + +#include "Common.h" + +#include "UsbHandler.h" +#include "MsgQueue.h" + +#include "TCP.h" + +UsbHandler::UsbHandler() +{ + key_t key; + if ((key = ftok(FTOK_PATH_NAME, 'S')) == -1) + { + perror("ftok"); + } + + usbQ = new MsgQueue(key, 0777); +} + +void UsbHandler::displayMsg() +{ +} + +void* UsbHandler::run() +{ + char message[MESSAGE_SIZE]; + + while (1) + { + usbQ->recv(message, MESSAGE_SIZE, USB_QUEUE_MSG_TYPE); + + Message msg(message); + msg.dump(); + } + +} + Property changes on: daemon/branches/CPPDaemon/UsbHandler.cpp ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Added: daemon/branches/CPPDaemon/UsbHandler.h =================================================================== --- daemon/branches/CPPDaemon/UsbHandler.h (rev 0) +++ daemon/branches/CPPDaemon/UsbHandler.h 2007-03-29 13:19:41 UTC (rev 214) @@ -0,0 +1,14 @@ +#include "MsgQueue.h" + +class UsbHandler +{ + public: + void displayMsg(); + void* run(); + + UsbHandler(); + ~UsbHandler(); + + private: + MsgQueue* usbQ; +}; Property changes on: daemon/branches/CPPDaemon/UsbHandler.h ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:keywords + Id Name: svn:eol-style + native Modified: daemon/branches/CPPDaemon/main.cpp =================================================================== --- daemon/branches/CPPDaemon/main.cpp 2007-03-29 12:18:40 UTC (rev 213) +++ daemon/branches/CPPDaemon/main.cpp 2007-03-29 13:19:41 UTC (rev 214) @@ -8,31 +8,42 @@ #include "TCP.h" #include "Socket.h" +#include "UsbHandler.h" -void* temp(void *); +void* tcp(void *); +void* usb(void *); /***************************************************************/ main() { - CommManager *comm = new CommManager(); - Message msg = Message(); + cout << "\n"; - cout << "\n\n"; + pthread_t tcpThread; + int thread_ret = pthread_create(&tcpThread, NULL, tcp, (void*) "TCP THREAD"); + printf("Created TCP\n"); - pthread_t tcpThread; - int thread_ret = pthread_create(&tcpThread, NULL, temp, (void*) "TCP THREAD"); + pthread_t usbThread; + pthread_create(&usbThread, NULL, usb, (void*) "USB THREAD"); + printf("Created USB\n"); + pthread_join(tcpThread, NULL); - printf("Thread ret: %d\n", thread_ret); + pthread_join(usbThread, NULL); + // printf("Thread ret: %d\n", thread_ret); cout << "\n\n"; } -void* temp(void *) +void* tcp(void *) { CommManager *comm = new CommManager; comm->run(); } +void* usb(void *) +{ + UsbHandler *usb = new UsbHandler; + usb->run(); +} |