00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
#include "korebot.h"
00012
00013
00028 char *
koa_get_nextValue(
char * current,
char * value)
00029 {
00030
while(*current !=
',' && *current !=
'\n')
00031 {
00032 *value = *current;
00033 value++;
00034 current++;
00035 }
00036
00037
if(*current ==
'\n')
00038
return NULL;
00039
else
00040 {
00041 *value =
'\0';
00042
return current+1;
00043 }
00044 }
00045
00046
00050 int koa_getOSVersion(
knet_dev_t * dev ,
00051
unsigned char *version ,
00052
unsigned char *revision,
00053
unsigned char *pversion,
00054
unsigned char *prevision)
00055 {
00056
char *p;
00057
char buf[16];
00058
int rc;
00059
00060
if ((rc=
knet_printf( dev ,
"B\r\n")) < 0 )
00061
return rc;
00062
00063
if ((rc=
knet_read_string( dev , buf ,
sizeof(buf)-1 ,
'\n' )) < 0 )
00064
return rc;
00065
00066
00067
if ( buf[0] !=
'b' )
00068
return 0;
00069
00070 p = &buf[2];
00071
00072
if ( version != NULL ) {
00073 *version = atoi(p);
00074 }
00075
00076
if ( revision != NULL ) {
00077
00078
while (*p!=
'\0' && *p!=
'.' ) p++;
00079
if (*p ==
'.' ) {
00080 p++;
00081 *revision = atoi(p);
00082 }
00083 }
00084
00085
if ( pversion != NULL ) {
00086
00087
while (*p!=
'\0' && *p!=
',' ) p++;
00088
if (*p ==
',' ) {
00089 p++;
00090 *pversion = atoi(p);
00091 }
00092 }
00093
00094
if ( prevision != NULL ) {
00095
00096
while (*p!=
'\0' && *p!=
'.' ) p++;
00097
if (*p ==
'.' ) {
00098 p++;
00099 *prevision = atoi(p);
00100 }
00101 }
00102
00103
return 0;
00104 }
00105
00106
00118 int koa_setSpeed(
knet_dev_t * dev ,
short int left ,
short int right )
00119 {
00120
char buf[32];
00121
int rc;
00122
00123
if ((rc=
knet_printf( dev ,
"D,%d,%d\r\n" ,
left ,
right )) < 0 )
00124
return rc;
00125
00126
if ((rc=
knet_read_string( dev , buf ,
sizeof(buf)-1 ,
'\n' )) < 0 )
00127
return rc;
00128
00129
00130
if ( buf[0] !=
'd' )
00131
return 0;
00132
00133
return 1;
00134 }
00135
00143 int koa_readProximity(
knet_dev_t * dev,
int * senstable)
00144 {
00145
char buf[256];
00146
char val[8];
00147
char * scan;
00148
int rc;
00149
00150
if ((rc=
knet_printf( dev ,
"N\r\n" )) < 0 )
00151
return rc;
00152
00153
if ((rc=
knet_read_string( dev , buf ,
sizeof(buf)-1 ,
'\n' )) < 0 )
00154
return rc;
00155
00156
00157
if ( buf[0] !=
'n' )
00158
return 0;
00159
00160 scan = buf+2;
00161
while(scan) {
00162 scan =
koa_get_nextValue(scan,val);
00163 *senstable = atoi(val);
00164 senstable++;
00165 }
00166
00167
return 1;
00168 }