20 unsigned char * bbuf=NULL;
23 int tohit(int argc, char **argv);
25 void SaveBB(int fd,char *buf,int len)
32 printf("Error bufer empty\n");
35 while(*buf && *buf!=' ') buf++;
36 while(*buf && *buf==' ') buf++;
38 while(*buf && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
42 printf("Error bad parametr \n");
45 if ((fd1 = open(str, O_CREAT | O_WRONLY, 0644)) == -1) {
46 printf("Error openning %s\n",str);
47 printf("%s\n",strerror(errno));
50 i=write(fd1,bbuf,Len);
52 printf("%s\n",strerror(errno));
55 printf("Error writing %s\n",str);
58 printf("Write %d bytes\n",i);
61 void SaveBA(int fd,char *buf,int len)
69 printf("Error bufer empty\n");
72 while(*buf && *buf!=' ') buf++;
73 while(*buf && *buf==' ') buf++;
75 while(*buf && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
79 printf("Error bad parametr \n");
84 printf("Error openning %s\n",str);
85 printf("%s\n",strerror(errno));
89 for(i=0;i<(Len/2);i++){
90 fprintf(F,"%07d\n",*x);
94 printf("Write %d num\n",i);
98 void Load(int fd,char *buf,int len,int fl)
118 if(j>0 && *buf==' '){
121 if(i<cnt) free(arg[i]);
122 arg[i]=(char *)malloc(j);
131 if(*buf!=' ' && *buf!=10 && *buf!=13) str[j++]=*buf;
140 printf(" A%d : %s\n",i,arg[i]);
144 write(fd,"LOAD\n",5);
154 printf("Bad Parametr\n");
165 void Get(int fd,char *buf,int len)
170 while(*buf && *buf!=' ') buf++;
171 while(*buf && *buf==' ') buf++;
174 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
176 GChan=strtol(str,NULL,10);
177 while(*buf && (*buf==' ' || *buf==',')) buf++;
180 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GStart[i++]=*buf++;
182 while(*buf && (*buf==' ' || *buf==',')) buf++;
185 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GLen[i++]=*buf++;
187 while(*buf && (*buf==' ' || *buf==',')) buf++;
190 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GName[i++]=*buf++;
194 printf("Error bad parametr \n");
199 sprintf(str,"GET 0,%s,%s\n",GStart,GLen);
201 write(fd,str,strlen(str));
204 void GetM(int fd,char *buf,int len)
209 while(*buf && *buf!=' ') buf++;
210 while(*buf && *buf==' ') buf++;
213 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
215 GChan=strtol(str,NULL,10);
216 while(*buf && (*buf==' ' || *buf==',')) buf++;
219 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GStart[i++]=*buf++;
221 while(*buf && (*buf==' ' || *buf==',')) buf++;
224 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GLen[i++]=*buf++;
226 while(*buf && (*buf==' ' || *buf==',')) buf++;
229 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GName[i++]=*buf++;
233 printf("Error bad parametr \n");
238 sprintf(str,"GET 0,%s,%s\n",GStart,GLen);
240 write(fd,str,strlen(str));
250 sprintf(str,"%s.%03d",GName,GSt);
254 printf("Error openning %s\n",str);
255 printf("%s\n",strerror(errno));
259 for(i=0;i<(Len/2);i++){
260 fprintf(F,"%07d\n",*x);
264 printf("Write %d num\n",i);
271 sprintf(str,"GET %d,%s,%s\n",GSt,GStart,GLen);
273 write(fd,str,strlen(str));
283 sprintf(str,"%s.dat",GName);
284 if(GSt==0)F=fopen(str,"w");
285 else F=fopen(str,"a");
287 printf("Error openning %s\n",str);
288 printf("%s\n",strerror(errno));
292 for(i=0;i<(Len/2);i++){
293 if(i==(Len/2)-1) fprintf(F,"%07d\n",*x);
294 else fprintf(F,"%07d ",*x);
298 // printf("Write %d num\n",i);
301 printf("Write %d chanels\n",GSt);
306 sprintf(str,"GET %d,%s,%s\n",GSt,GStart,GLen);
308 write(fd,str,strlen(str));
311 void LCmd(int fd,char* buf,int len)
314 if((strstr(buf,"!loadb")==buf) || (strstr(buf,"!LOADB")==buf))
316 else if((strstr(buf,"!load")==buf) || (strstr(buf,"!LOAD")==buf))
318 else if((strstr(buf,"!savebuf")==buf) || (strstr(buf,"!SAVEBUF")==buf))
320 else if((strstr(buf,"!saveasc")==buf) || (strstr(buf,"!SAVEASC")==buf))
322 else if((strstr(buf,"!getm")==buf) || (strstr(buf,"!GETM")==buf))
324 else if((strstr(buf,"!get")==buf) || (strstr(buf,"!GET")==buf))
326 else printf ("Unknown comand : %s\n",buf);
332 if(Cb==2) GetMCB(fd);
336 int main(int argc, char **argv)
341 unsigned char ibuf[500];
342 unsigned char obuf[500];
343 unsigned char * sdev="/dev/ttyS1";
353 if ((fd = open(sdev, O_RDWR | O_NONBLOCK)) == -1) {
354 printf("Error openning %s\n",sdev);
357 rs232_setmode(fd,38800,0,0);
363 if(rs232_test(fd,10000)==1){
364 oi+=read(fd, obuf+oi, 500-oi);
365 if(obuf[oi-1]==0xa || obuf[oi-1]==0xd || oi>400){
375 memcpy(bb,obuf,dlen);
389 x=strstr(obuf,"061:");
392 sscanf(x,"%ld",&Len);
393 printf("len=%ld\n",Len);
396 bbuf=(unsigned char *)malloc(len);
398 while(*x!=0xa && *x!=0xd && *x) x++;
399 if(*x==0xd || *x==0xa) x++;
407 x=strstr(obuf,"062:");
412 if(oi-(x-obuf)>=dlen){
425 memcpy(bb,x,oi-(x-obuf));
437 if(rs232_test(1,10000)==1){
438 ii+=read(1, ibuf+ii, 500-ii);
439 if(ibuf[ii-1]==0xa || ibuf[ii-1]==0xd || ii>400){