19 unsigned char * bbuf=NULL;
22 int tohit(int argc, char **argv);
24 void SaveBB(int fd,char *buf,int len)
31 printf("Error bufer empty\n");
34 while(*buf && *buf!=' ') buf++;
35 while(*buf && *buf==' ') buf++;
37 while(*buf && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
41 printf("Error bad parametr \n");
44 if ((fd1 = open(str, O_CREAT | O_WRONLY, 0644)) == -1) {
45 printf("Error openning %s\n",str);
46 printf("%s\n",strerror(errno));
49 i=write(fd1,bbuf,Len);
51 printf("%s\n",strerror(errno));
54 printf("Error writing %s\n",str);
57 printf("Write %d bytes\n",i);
60 void SaveBA(int fd,char *buf,int len)
68 printf("Error bufer empty\n");
71 while(*buf && *buf!=' ') buf++;
72 while(*buf && *buf==' ') buf++;
74 while(*buf && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
78 printf("Error bad parametr \n");
83 printf("Error openning %s\n",str);
84 printf("%s\n",strerror(errno));
88 for(i=0;i<(Len/2);i++){
89 fprintf(F,"%07d\n",*x);
93 printf("Write %d num\n",i);
97 void Load(int fd,char *buf,int len,int fl)
117 if(j>0 && *buf==' '){
120 if(i<cnt) free(arg[i]);
121 arg[i]=(char *)malloc(j);
130 if(*buf!=' ' && *buf!=10 && *buf!=13) str[j++]=*buf;
139 printf(" A%d : %s\n",i,arg[i]);
143 write(fd,"LOAD\n",5);
153 printf("Bad Parametr\n");
164 void Get(int fd,char *buf,int len)
169 while(*buf && *buf!=' ') buf++;
170 while(*buf && *buf==' ') buf++;
173 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
175 GChan=strtol(str,NULL,10);
176 while(*buf && (*buf==' ' || *buf==',')) buf++;
179 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GStart[i++]=*buf++;
181 while(*buf && (*buf==' ' || *buf==',')) buf++;
184 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GLen[i++]=*buf++;
186 while(*buf && (*buf==' ' || *buf==',')) buf++;
189 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GName[i++]=*buf++;
193 printf("Error bad parametr \n");
198 sprintf(str,"GET 0,%s,%s\n",GStart,GLen);
200 write(fd,str,strlen(str));
203 void GetM(int fd,char *buf,int len)
208 while(*buf && *buf!=' ') buf++;
209 while(*buf && *buf==' ') buf++;
212 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) str[i++]=*buf++;
214 GChan=strtol(str,NULL,10);
215 while(*buf && (*buf==' ' || *buf==',')) buf++;
218 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GStart[i++]=*buf++;
220 while(*buf && (*buf==' ' || *buf==',')) buf++;
223 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GLen[i++]=*buf++;
225 while(*buf && (*buf==' ' || *buf==',')) buf++;
228 while(*buf && *buf!=',' && *buf!=' ' && *buf!=10 && *buf!=13) GName[i++]=*buf++;
232 printf("Error bad parametr \n");
237 sprintf(str,"GET 0,%s,%s\n",GStart,GLen);
239 write(fd,str,strlen(str));
249 sprintf(str,"%s.%03d",GName,GSt);
253 printf("Error openning %s\n",str);
254 printf("%s\n",strerror(errno));
258 for(i=0;i<(Len/2);i++){
259 fprintf(F,"%07d\n",*x);
263 printf("Write %d num\n",i);
270 sprintf(str,"GET %d,%s,%s\n",GSt,GStart,GLen);
272 write(fd,str,strlen(str));
282 sprintf(str,"%s.dat",GName);
283 if(GSt==0)F=fopen(str,"w");
284 else F=fopen(str,"a");
286 printf("Error openning %s\n",str);
287 printf("%s\n",strerror(errno));
291 for(i=0;i<(Len/2);i++){
292 if(i==(Len/2)-1) fprintf(F,"%07d\n",*x);
293 else fprintf(F,"%07d ",*x);
297 // printf("Write %d num\n",i);
300 printf("Write %d chanels\n",GSt);
305 sprintf(str,"GET %d,%s,%s\n",GSt,GStart,GLen);
307 write(fd,str,strlen(str));
310 void LCmd(int fd,char* buf,int len)
313 if((strstr(buf,"!loadb")==buf) || (strstr(buf,"!LOADB")==buf))
315 else if((strstr(buf,"!load")==buf) || (strstr(buf,"!LOAD")==buf))
317 else if((strstr(buf,"!savebuf")==buf) || (strstr(buf,"!SAVEBUF")==buf))
319 else if((strstr(buf,"!saveasc")==buf) || (strstr(buf,"!SAVEASC")==buf))
321 else if((strstr(buf,"!getm")==buf) || (strstr(buf,"!GETM")==buf))
323 else if((strstr(buf,"!get")==buf) || (strstr(buf,"!GET")==buf))
325 else printf ("Unknown comand : %s\n",buf);
331 if(Cb==2) GetMCB(fd);
335 int main(int argc, char **argv)
340 unsigned char ibuf[500];
341 unsigned char obuf[500];
342 unsigned char * sdev="/dev/ttyS1";
352 if ((fd = open(sdev, O_RDWR | O_NONBLOCK)) == -1) {
353 printf("Error openning %s\n",sdev);
356 rs232_setmode(fd,38800,0,0);
362 if(rs232_test(fd,10000)==1){
363 oi+=read(fd, obuf+oi, 500-oi);
364 if(obuf[oi-1]==0xa || obuf[oi-1]==0xd || oi>400){
374 memcpy(bb,obuf,dlen);
388 x=strstr(obuf,"061:");
391 sscanf(x,"%ld",&Len);
392 printf("len=%ld\n",Len);
395 bbuf=(unsigned char *)malloc(len);
397 while(*x!=0xa && *x!=0xd && *x) x++;
398 if(*x==0xd || *x==0xa) x++;
406 x=strstr(obuf,"062:");
411 if(oi-(x-obuf)>=dlen){
424 memcpy(bb,x,oi-(x-obuf));
436 if(rs232_test(1,10000)==1){
437 ii+=read(1, ibuf+ii, 500-ii);
438 if(ibuf[ii-1]==0xa || ibuf[ii-1]==0xd || ii>400){