nearly finished gui code. adaptions / bugfixes.
[physik/nlsop.git] / nlsop_gui.c
index 7949c55..0c56147 100644 (file)
@@ -75,6 +75,85 @@ int send_and_wait_for_answer(t_net *net,t_display *display) {
 
 int send_job(t_net *net,t_input *input,t_display *display) {
 
+  char command[MAX_CONTENT];
+  int x,y,z;
+  info info;
+
+  /* default values */
+  x=X;
+  y=Y;
+  z=Z;
+  info.cc=CC;
+  info.steps=STEPS;
+  info.range=RANGE;
+  info.diff_rate=DIFF_RATE;
+  info.cpi=CPI;
+  info.s_rate=S_RATE;
+  info.save_rate=RESAVE;
+  info.s=S_D;
+  info.b=B_D;
+  info.c=C_D;
+  info.dr_ac=DR_AC;
+
+  strncpy(command,input->content,MAX_CONTENT);
+
+  strtok(command," ");
+  while(strtok(NULL," ")!=NULL) {
+    switch(command[0]) {
+      case 'b':
+        info.b=atof(command+1);
+        break;
+      case 'c':
+        info.c=atof(command+1);
+        break;
+      case 's':
+        info.s=atof(command+1);
+        break;
+      case 'd':
+        info.diff_rate=atoi(command+1);
+        break;
+      case 'D':
+        info.dr_ac=atof(command+1);
+        break;
+      case 'S':
+        info.steps=atoi(command+1);
+        break;
+      case 'C':
+        info.cpi=atoi(command+1);
+        break;
+      case 'r':
+        info.range=atoi(command+1);
+        break;
+      case 'R':
+        info.s_rate=atoi(command+1);
+        break;
+      case 'x':
+        info.save_rate=atoi(command+1);
+        break;
+      case 'X':
+        x=atoi(command+1);
+        break;
+      case 'Y':
+        y=atoi(command+1);
+        break;
+      case 'Z':
+        z=atoi(command+1);
+        break;
+      default:
+        display_new_line(display,"unknown command");
+        break;
+    }
+  }
+
+  command[0]=GUI_ADDJOB;
+  network_send_chan(net,0,data,1);
+
+  network_send_chan(net,0,(unsigned char *)&x,sizeof(int));
+  network_send_chan(net,0,(unsigned char *)&y,sizeof(int));
+  network_send_chan(net,0,(unsigned char *)&z,sizeof(int));
+
+  network_send_chan(net,0,(unsigned char *)&info,sizeof(info));
+
   return 1;
 }