CIS541 / Mbed 2 deprecated Pacemaker_2

Dependencies:   mbed-rtos mbed

Committer:
Huazhi
Date:
Fri Nov 27 21:43:33 2015 +0000
Revision:
0:6477530de2c0
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Huazhi 0:6477530de2c0 1 /* VMachine */
Huazhi 0:6477530de2c0 2 void VMachine(void const *i)
Huazhi 0:6477530de2c0 3 {
Huazhi 0:6477530de2c0 4 int CurrentState = VMACHINE_INITIAL;
Huazhi 0:6477530de2c0 5 RtosTimer local_timer = RtosTimer(VMachine_timer, osTimerPeriodic,(void *)0);
Huazhi 0:6477530de2c0 6 local_timer.start(1);
Huazhi 0:6477530de2c0 7 while (true) {
Huazhi 0:6477530de2c0 8 switch (CurrentState) {
Huazhi 0:6477530de2c0 9 case VMACHINE_AEVENT:
Huazhi 0:6477530de2c0 10 if(VMachine_clock >= AVI && global_time >= CURRENT_URI) {
Huazhi 0:6477530de2c0 11 SyncStatus[VPACE] = agre_time;
Huazhi 0:6477530de2c0 12 CurrentState = VMACHINE_INITIAL;
Huazhi 0:6477530de2c0 13 pc.printf("VPace ");
Huazhi 0:6477530de2c0 14 pc.printf("Time: %ld", agre_time);
Huazhi 0:6477530de2c0 15 pc.printf("\n");
Huazhi 0:6477530de2c0 16 }
Huazhi 0:6477530de2c0 17 break;
Huazhi 0:6477530de2c0 18 case VMACHINE_INTER:
Huazhi 0:6477530de2c0 19 if (global_time >= CURRENT_URI){
Huazhi 0:6477530de2c0 20 SyncStatus[VPACE] = agre_time;
Huazhi 0:6477530de2c0 21 CurrentState = VMACHINE_INITIAL;
Huazhi 0:6477530de2c0 22 pc.printf("VPace ");
Huazhi 0:6477530de2c0 23 pc.printf("Time: %ld", agre_time);
Huazhi 0:6477530de2c0 24 pc.printf("\n");
Huazhi 0:6477530de2c0 25 }
Huazhi 0:6477530de2c0 26 break;
Huazhi 0:6477530de2c0 27 }
Huazhi 0:6477530de2c0 28 for(int trn=10; trn<=16; trn++) {
Huazhi 0:6477530de2c0 29 if(TRANS[trn].source == CurrentState){
Huazhi 0:6477530de2c0 30 TRANS[trn].active = true;
Huazhi 0:6477530de2c0 31 }else{
Huazhi 0:6477530de2c0 32 TRANS[trn].active = false;
Huazhi 0:6477530de2c0 33 }
Huazhi 0:6477530de2c0 34 if(TRANS[trn].active) {
Huazhi 0:6477530de2c0 35 if(EVAL_GUARD(trn)) {
Huazhi 0:6477530de2c0 36 if(TRANS[trn].syncid == NONE || agre_time - SyncStatus[TRANS[trn].syncid] < Broadcase_delay) {
Huazhi 0:6477530de2c0 37 CurrentState = TRANS[trn].dest;
Huazhi 0:6477530de2c0 38 ASSIGN(trn);
Huazhi 0:6477530de2c0 39 }
Huazhi 0:6477530de2c0 40 }
Huazhi 0:6477530de2c0 41 }
Huazhi 0:6477530de2c0 42 }
Huazhi 0:6477530de2c0 43 }
Huazhi 0:6477530de2c0 44 }