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.
Dependents: FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3
Fork of freemaster_lib by
class/freemaster_class.h@4:256c3ffc6f40, 2014-05-14 (annotated)
- Committer:
- JardaPajskr
- Date:
- Wed May 14 13:47:39 2014 +0000
- Revision:
- 4:256c3ffc6f40
- Parent:
- 2:1895e8ed1c25
- Child:
- 8:17470feaa6be
added comment for TSA registration
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JardaPajskr | 0:fb135bf60f82 | 1 | #ifndef MBED_FREEMASTER_H |
JardaPajskr | 0:fb135bf60f82 | 2 | #define MBED_FREEMASTER_H |
JardaPajskr | 0:fb135bf60f82 | 3 | |
JardaPajskr | 0:fb135bf60f82 | 4 | #include "platform.h" |
JardaPajskr | 0:fb135bf60f82 | 5 | |
JardaPajskr | 0:fb135bf60f82 | 6 | #if DEVICE_SERIAL |
JardaPajskr | 0:fb135bf60f82 | 7 | |
JardaPajskr | 0:fb135bf60f82 | 8 | #include "serial_api.h" |
JardaPajskr | 0:fb135bf60f82 | 9 | #include "freemaster.h" |
JardaPajskr | 0:fb135bf60f82 | 10 | |
JardaPajskr | 0:fb135bf60f82 | 11 | namespace mbed { |
JardaPajskr | 0:fb135bf60f82 | 12 | |
JardaPajskr | 0:fb135bf60f82 | 13 | /** A FreeMASTER serial driver |
JardaPajskr | 0:fb135bf60f82 | 14 | * |
JardaPajskr | 0:fb135bf60f82 | 15 | * Can be used for debugging code over the serial line |
JardaPajskr | 0:fb135bf60f82 | 16 | * |
JardaPajskr | 0:fb135bf60f82 | 17 | * Example: |
JardaPajskr | 0:fb135bf60f82 | 18 | * @code |
JardaPajskr | 0:fb135bf60f82 | 19 | * // Set up the FreeMASTER serial driver |
JardaPajskr | 0:fb135bf60f82 | 20 | * |
JardaPajskr | 0:fb135bf60f82 | 21 | * #include "mbed.h" |
JardaPajskr | 0:fb135bf60f82 | 22 | * #include "freemaster_class.h" |
JardaPajskr | 0:fb135bf60f82 | 23 | * |
JardaPajskr | 0:fb135bf60f82 | 24 | * Freemaster fm(USBTX, USBRX); |
JardaPajskr | 0:fb135bf60f82 | 25 | * |
JardaPajskr | 0:fb135bf60f82 | 26 | * FMSTR_TSA_TABLE_LIST_BEGIN() |
JardaPajskr | 0:fb135bf60f82 | 27 | * FMSTR_TSA_TABLE_LIST_END() |
JardaPajskr | 0:fb135bf60f82 | 28 | * |
JardaPajskr | 0:fb135bf60f82 | 29 | * //define global variables |
JardaPajskr | 0:fb135bf60f82 | 30 | * volatile unsigned char example_var8; |
JardaPajskr | 0:fb135bf60f82 | 31 | * volatile unsigned short example_var16; |
JardaPajskr | 0:fb135bf60f82 | 32 | * |
JardaPajskr | 0:fb135bf60f82 | 33 | * int main() { |
JardaPajskr | 0:fb135bf60f82 | 34 | * //register global or static variables |
JardaPajskr | 0:fb135bf60f82 | 35 | * fm.TsaAddVar(FMSTR_TSA_RW_VAR_CFG(example_var8,FMSTR_TSA_UINT8)); |
JardaPajskr | 0:fb135bf60f82 | 36 | * //register read only variable |
JardaPajskr | 0:fb135bf60f82 | 37 | * fm.TsaAddVar(FMSTR_TSA_RO_VAR_CFG(example_var16,FMSTR_TSA_UINT16)); |
JardaPajskr | 0:fb135bf60f82 | 38 | * while(1) |
JardaPajskr | 0:fb135bf60f82 | 39 | * { |
JardaPajskr | 0:fb135bf60f82 | 40 | * //your application |
JardaPajskr | 0:fb135bf60f82 | 41 | * } |
JardaPajskr | 0:fb135bf60f82 | 42 | * } |
JardaPajskr | 0:fb135bf60f82 | 43 | * @endcode |
JardaPajskr | 0:fb135bf60f82 | 44 | */ |
JardaPajskr | 0:fb135bf60f82 | 45 | class Freemaster { |
JardaPajskr | 0:fb135bf60f82 | 46 | |
JardaPajskr | 0:fb135bf60f82 | 47 | public: |
JardaPajskr | 1:5033fe82d4c2 | 48 | /** Create FreeMASTER interface |
JardaPajskr | 1:5033fe82d4c2 | 49 | * |
JardaPajskr | 1:5033fe82d4c2 | 50 | * @param tx Transmit pin |
JardaPajskr | 1:5033fe82d4c2 | 51 | * @param rx Receive pin |
JardaPajskr | 1:5033fe82d4c2 | 52 | * @param tsaMembers Maximum of variables to register dynamically. (optional) |
JardaPajskr | 1:5033fe82d4c2 | 53 | * @param recBufferSize Buffer size for recorder feature. (optional) |
JardaPajskr | 1:5033fe82d4c2 | 54 | * @param flags Advanced configuration. (optional) |
JardaPajskr | 1:5033fe82d4c2 | 55 | * |
JardaPajskr | 1:5033fe82d4c2 | 56 | */ |
JardaPajskr | 0:fb135bf60f82 | 57 | Freemaster(PinName tx, PinName rx, uint32_t tsaMembers = 20, uint32_t recBufferSize = 1024, uint32_t flags = 0); |
JardaPajskr | 1:5033fe82d4c2 | 58 | |
JardaPajskr | 1:5033fe82d4c2 | 59 | /** Set the baud rate of the serial port |
JardaPajskr | 1:5033fe82d4c2 | 60 | * |
JardaPajskr | 1:5033fe82d4c2 | 61 | * @param baudrate The baudrate of the serial port (default = 9600). |
JardaPajskr | 1:5033fe82d4c2 | 62 | */ |
JardaPajskr | 0:fb135bf60f82 | 63 | void baud(int baudrate); |
JardaPajskr | 1:5033fe82d4c2 | 64 | |
JardaPajskr | 1:5033fe82d4c2 | 65 | /** Catch initialized variables into recorder buffer. |
JardaPajskr | 1:5033fe82d4c2 | 66 | */ |
JardaPajskr | 0:fb135bf60f82 | 67 | void Recorder(void); |
JardaPajskr | 0:fb135bf60f82 | 68 | void Poll(void); |
JardaPajskr | 0:fb135bf60f82 | 69 | |
JardaPajskr | 4:256c3ffc6f40 | 70 | /** Register variables to TSA table |
JardaPajskr | 4:256c3ffc6f40 | 71 | * |
JardaPajskr | 4:256c3ffc6f40 | 72 | * @param name, type, addr, info, use following macros to register variable |
JardaPajskr | 4:256c3ffc6f40 | 73 | * FMSTR_TSA_STRUCT_CFG(name) - register structure |
JardaPajskr | 4:256c3ffc6f40 | 74 | * FMSTR_TSA_MEMBER_CFG(parenttype,name,type) - register member of structure |
JardaPajskr | 4:256c3ffc6f40 | 75 | * FMSTR_TSA_RO_VAR_CFG(name,type) - register Read Only variable |
JardaPajskr | 4:256c3ffc6f40 | 76 | * FMSTR_TSA_RW_VAR_CFG(name,type) - register variable |
JardaPajskr | 4:256c3ffc6f40 | 77 | * FMSTR_TSA_RO_MEM_CFG(name,type,addr,size) - register read only of memory block |
JardaPajskr | 4:256c3ffc6f40 | 78 | * FMSTR_TSA_RW_MEM_CFG(name,type,addr,size) - register memory block |
JardaPajskr | 4:256c3ffc6f40 | 79 | * |
JardaPajskr | 4:256c3ffc6f40 | 80 | * @returns |
JardaPajskr | 4:256c3ffc6f40 | 81 | * 1 if there is space to register a variable, |
JardaPajskr | 4:256c3ffc6f40 | 82 | * 0 otherwise |
JardaPajskr | 4:256c3ffc6f40 | 83 | */ |
JardaPajskr | 0:fb135bf60f82 | 84 | FMSTR_BOOL TsaAddVar(FMSTR_TSATBL_STRPTR name, FMSTR_TSATBL_STRPTR type, FMSTR_TSATBL_VOIDPTR addr, FMSTR_TSATBL_VOIDPTR info); |
JardaPajskr | 0:fb135bf60f82 | 85 | |
JardaPajskr | 0:fb135bf60f82 | 86 | static void _irq_handler(uint32_t id, SerialIrq irq_type); |
JardaPajskr | 0:fb135bf60f82 | 87 | protected: |
JardaPajskr | 0:fb135bf60f82 | 88 | serial_t _serial; |
JardaPajskr | 0:fb135bf60f82 | 89 | int _baud; |
JardaPajskr | 0:fb135bf60f82 | 90 | void* tsaTable; |
JardaPajskr | 0:fb135bf60f82 | 91 | void* recBuf; |
JardaPajskr | 0:fb135bf60f82 | 92 | |
JardaPajskr | 0:fb135bf60f82 | 93 | }; |
JardaPajskr | 0:fb135bf60f82 | 94 | |
JardaPajskr | 0:fb135bf60f82 | 95 | } // namespace mbed |
JardaPajskr | 0:fb135bf60f82 | 96 | #endif |
JardaPajskr | 0:fb135bf60f82 | 97 | |
JardaPajskr | 0:fb135bf60f82 | 98 | #endif |