Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
VMachine.h@0:6477530de2c0, 2015-11-27 (annotated)
- Committer:
- Huazhi
- Date:
- Fri Nov 27 21:43:33 2015 +0000
- Revision:
- 0:6477530de2c0
Initial commit
Who changed what in which revision?
User | Revision | Line number | New 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 | } |