i should make literal work
[mTask.git] / int / int.c
index f3332f7..fd54153 100644 (file)
--- a/int/int.c
+++ b/int/int.c
@@ -47,9 +47,8 @@ bool input_available(int fd){
 void read_message(int fd_in, int fd_out)
 {
        //Find next task
-       uint8_t c;
+       uint8_t c, ct;
        uint16_t tasklen;
-       uint8_t ct;
 
        for(ct = 0; ct<MAXTASKS; ct++)
                if(!tasks_used[ct])
@@ -59,9 +58,9 @@ void read_message(int fd_in, int fd_out)
 
        debug("Receiving input for task %d\n", ct);
        read(fd_in, &c, 1);
-       if((char) c == 's') {
+       if(c == 's') {
                debug("Receiving an sds\n");
-       } else if((char) c == 't'){
+       } else if(c == 't'){
                read(fd_in, &c, 1);
                tasklen = 256*c;
                read(fd_in, &c, 1);
@@ -79,7 +78,7 @@ void read_message(int fd_in, int fd_out)
                debug("Received a task of length %d\n", tasklen);
                tasks_used[ct] = true;
        } else {
-               die("Unknown message: %c?\n", c);
+               debug("Unknown message: %X?\n", c);
        }
 }
 
@@ -91,7 +90,7 @@ void run_task(char *program)
        char stack[1024] = {0};
        while(pc != plen){
                switch(program[pc++]){
-               case BCNOP:;
+               case BCNOP:
                        break;
                case BCPUSH:
                        stack[sp++] = program[pc++];
@@ -174,12 +173,19 @@ void run_task(char *program)
                        printf("SerialParseInt()\n");
                        break;
                case BCANALOGREAD:
-                       printf("AnalogRead()\n");
+                       printf("AnalogRead(%d)\n", program[pc++]);
                        break;
                case BCANALOGWRITE:
-                       printf("AnalogWrite()\n");
+                       printf("AnalogWrite(%d)\n", program[pc++]);
+                       break;
+               case BCDIGITALREAD:
+                       printf("DigitalRead(%d)\n", program[pc++]);
+                       break;
+               case BCDIGITALWRITE:
+                       printf("DigitalWrite(%d)\n", program[pc++]);
+                       break;
                default:
-                       die("Unrecognized command: %X\n", program[--pc]);
+                       die("Unrecognized command: %d\n", program[--pc]);
                }
        }
 }
@@ -204,7 +210,6 @@ int main(void)
                //Check for new tasks
                if(input_available(fd_in)){
                        read_message(fd_in, fd_out);
-                       exit(1);
                }
                //Run tasks
                for(ct = 0; ct<MAXTASKS; ct++){
@@ -214,7 +219,9 @@ int main(void)
                        }
                        debug("Going to execute task %d\n", ct);
                        run_task(tasks[ct]);
+                       exit(1);
                }
+//             exit(1);
                usleep(10);
        }