00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00023 #include <stdio.h>
00024 #include <stddef.h>
00025 #include <stdlib.h>
00026 #include <string.h>
00027 #include <sys/types.h>
00028 #include <sys/socket.h>
00029 #include <netinet/in.h>
00030 #include <arpa/inet.h>
00031 #include <unistd.h>
00032
00033 #include "eripc.h"
00034 #include "eripcclient.h"
00035 #include "eripcbusyd.h"
00036 #include "eripcparser.h"
00037
00038
00039 int busySetBusy(erClientChannel_t channel, eCcBusyState busy)
00040 {
00041 erIpcCmd_t cmd;
00042
00043 strcpy(cmd.name, "busySetBusy");
00044 cmd.cc = (int) ccBusySetBusy;
00045 cmd.nArg = 1;
00046 sprintf(cmd.arg[0], "%d", busy);
00047
00048 return erIpcSndCommand(channel, &cmd);
00049 }
00050
00051
00052
00053
00054 int busyParseCommand(char *szCommand, erIpcCmd_t * pCmd)
00055 {
00056 int i;
00057 char *pChar;
00058 char szToken[TB_MAXCHARONLINE];
00059 int nReqArgs = 0;
00060
00061 pCmd->cc = (int) ccBusyUndefined;
00062 for (i = 0; i < TB_N_ARG; i++)
00063 {
00064 strcpy(pCmd->arg[i], "");
00065 }
00066
00067
00068 pChar = szCommand;
00069 i = 0;
00070 while (*pChar != '\0')
00071 {
00072 szToken[i] = '\0';
00073 if (*pChar == ',')
00074 {
00075 pChar++;
00076 break;
00077 }
00078 szToken[i] = *pChar++;
00079 i++;
00080 szToken[i] = '\0';
00081 }
00082
00083
00084
00085
00086
00087 if (!strcmp(szToken, "busySetBusy") || !strcmp(szToken, "0"))
00088 {
00089 strcpy(pCmd->name, szToken);
00090 pCmd->cc = (int) ccBusySetBusy;
00091 nReqArgs = 1;
00092 pCmd->nArg = 1;
00093 }
00094 else
00095 {
00096 strcpy(pCmd->name, "Undefined");
00097 pCmd->cc = (int) ccBusyUndefined;
00098 fprintf(stderr, "%s: Command %s \n", __FUNCTION__, szToken);
00099 fprintf(stderr, "Error parsing (%s). Command undefined\n", szCommand);
00100 pCmd->nArg = -1;
00101 return -1;
00102 }
00103
00104 if (nReqArgs > 0)
00105 {
00106 erIpcGetArgs(pChar, pCmd, nReqArgs);
00107 }
00108 return 0;
00109 }