- File:
-
- 1 edited
-
tests/coroutine/devicedriver.cfa (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
tests/coroutine/devicedriver.cfa
r93c86ac r427854b 10 10 // Created On : Sat Mar 16 15:30:34 2019 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Sat Jun 17 09:11:56 202313 // Update Count : 9 412 // Last Modified On : Sat Apr 20 09:07:19 2019 13 // Update Count : 90 14 14 // 15 15 … … 18 18 19 19 enum Status { CONT, MSG, ESTX, ELNTH, ECRC }; 20 21 20 coroutine Driver { 22 21 Status status; … … 24 23 }; // Driver 25 24 26 void ?{}( Driver & d, char * m ) { d.msg = m; } // constructor 27 28 Status next( Driver & d, char b ) with( d ) { // called by interrupt handler 29 byte = b; resume( d ); return status; // resume coroutine at last suspend 25 void ?{}( Driver & d, char * m ) { d.msg = m; } 26 Status next( Driver & d, char b ) with( d ) { 27 byte = b; resume( d ); return status; 30 28 } // next 31 29 … … 75 73 if ( eof( sin ) ) break eof; // eof ? 76 74 choose( next( driver, byte ) ) { // analyse character 77 case CONT: ; 78 case MSG: sout | "msg:" | msg; 79 case ESTX: sout | "STX in message"; 80 case ELNTH: sout | "message too long"; 81 case ECRC: sout | "CRC failure"; 75 case MSG: 76 sout | "msg:" | msg; 77 case ESTX: 78 sout | "STX in message"; 79 case ELNTH: 80 sout | "message too long"; 81 case ECRC: 82 sout | "CRC failure"; 83 default: ; 82 84 } // choose 83 85 } // for … … 85 87 86 88 // Local Variables: // 89 // tab-width: 4 // 87 90 // compile-command: "cfa -g -Wall -Wextra devicedriver.cfa" // 88 91 // End: //
Note:
See TracChangeset
for help on using the changeset viewer.