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.cpp@8:17470feaa6be, 2014-05-15 (annotated)
- Committer:
- JardaPajskr
- Date:
- Thu May 15 08:52:08 2014 +0000
- Revision:
- 8:17470feaa6be
- Parent:
- 0:fb135bf60f82
- Child:
- 9:61b2beb811bf
added rest of FMSTR API
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| JardaPajskr | 0:fb135bf60f82 | 1 | #include "mbed.h" |
| JardaPajskr | 8:17470feaa6be | 2 | #include "freemaster_cfg.h" |
| JardaPajskr | 8:17470feaa6be | 3 | #include "freemaster_class.h" |
| JardaPajskr | 0:fb135bf60f82 | 4 | |
| JardaPajskr | 0:fb135bf60f82 | 5 | |
| JardaPajskr | 0:fb135bf60f82 | 6 | #if DEVICE_SERIAL |
| JardaPajskr | 0:fb135bf60f82 | 7 | #define FMSTR_USE_TSA_DYNAMIC 1 |
| JardaPajskr | 0:fb135bf60f82 | 8 | #define FMSTR_REC_OWNBUFF 1 |
| JardaPajskr | 0:fb135bf60f82 | 9 | namespace mbed { |
| JardaPajskr | 0:fb135bf60f82 | 10 | Freemaster::Freemaster(PinName tx, PinName rx, uint32_t tsaMembers, uint32_t recBufferSize, uint32_t flags) { |
| JardaPajskr | 0:fb135bf60f82 | 11 | serial_init(&_serial, tx, rx); |
| JardaPajskr | 0:fb135bf60f82 | 12 | _baud = 9600; |
| JardaPajskr | 0:fb135bf60f82 | 13 | serial_irq_handler(&_serial, Freemaster::_irq_handler, (uint32_t)this); |
| JardaPajskr | 0:fb135bf60f82 | 14 | FMSTR_InitSerialBase((FMSTR_BPTR)&_serial.uart->BDH); |
| JardaPajskr | 0:fb135bf60f82 | 15 | FMSTR_Init(); |
| JardaPajskr | 0:fb135bf60f82 | 16 | #if !(FMSTR_POLL_DRIVEN) |
| JardaPajskr | 0:fb135bf60f82 | 17 | serial_irq_set(&_serial, RxIrq, 1); |
| JardaPajskr | 0:fb135bf60f82 | 18 | serial_irq_set(&_serial, TxIrq, 1); |
| JardaPajskr | 0:fb135bf60f82 | 19 | #endif |
| JardaPajskr | 0:fb135bf60f82 | 20 | #if (FMSTR_USE_TSA_DYNAMIC) |
| JardaPajskr | 0:fb135bf60f82 | 21 | tsaTable=malloc(tsaMembers*sizeof(FMSTR_TSA_ENTRY)); |
| JardaPajskr | 0:fb135bf60f82 | 22 | FMSTR_SetUpTsaBuff((FMSTR_ADDR)tsaTable, (tsaMembers)*sizeof(FMSTR_TSA_ENTRY)); |
| JardaPajskr | 0:fb135bf60f82 | 23 | #endif |
| JardaPajskr | 0:fb135bf60f82 | 24 | |
| JardaPajskr | 0:fb135bf60f82 | 25 | #if (FMSTR_REC_OWNBUFF) |
| JardaPajskr | 0:fb135bf60f82 | 26 | recBuf=malloc(recBufferSize); |
| JardaPajskr | 0:fb135bf60f82 | 27 | FMSTR_SetUpRecBuff((FMSTR_ADDR)recBuf, recBufferSize); |
| JardaPajskr | 0:fb135bf60f82 | 28 | #endif |
| JardaPajskr | 0:fb135bf60f82 | 29 | } |
| JardaPajskr | 0:fb135bf60f82 | 30 | |
| JardaPajskr | 0:fb135bf60f82 | 31 | FMSTR_BOOL Freemaster::TsaAddVar(FMSTR_TSATBL_STRPTR name, FMSTR_TSATBL_STRPTR type, FMSTR_TSATBL_VOIDPTR addr, FMSTR_TSATBL_VOIDPTR info) { |
| JardaPajskr | 0:fb135bf60f82 | 32 | #if FMSTR_USE_TSA_DYNAMIC |
| JardaPajskr | 0:fb135bf60f82 | 33 | return FMSTR_TsaAddVar(name, type, addr, info); |
| JardaPajskr | 0:fb135bf60f82 | 34 | #else |
| JardaPajskr | 0:fb135bf60f82 | 35 | return FMSTR_FALSE; |
| JardaPajskr | 0:fb135bf60f82 | 36 | #endif |
| JardaPajskr | 0:fb135bf60f82 | 37 | } |
| JardaPajskr | 0:fb135bf60f82 | 38 | |
| JardaPajskr | 0:fb135bf60f82 | 39 | void Freemaster::baud(int baudrate) { |
| JardaPajskr | 0:fb135bf60f82 | 40 | serial_baud(&_serial, baudrate); |
| JardaPajskr | 0:fb135bf60f82 | 41 | _baud = baudrate; |
| JardaPajskr | 0:fb135bf60f82 | 42 | } |
| JardaPajskr | 0:fb135bf60f82 | 43 | |
| JardaPajskr | 0:fb135bf60f82 | 44 | void Freemaster::Recorder() { |
| JardaPajskr | 0:fb135bf60f82 | 45 | FMSTR_Recorder(); |
| JardaPajskr | 0:fb135bf60f82 | 46 | } |
| JardaPajskr | 0:fb135bf60f82 | 47 | |
| JardaPajskr | 8:17470feaa6be | 48 | void Freemaster::TriggerRec() { |
| JardaPajskr | 8:17470feaa6be | 49 | FMSTR_TriggerRec(); |
| JardaPajskr | 8:17470feaa6be | 50 | } |
| JardaPajskr | 8:17470feaa6be | 51 | |
| JardaPajskr | 0:fb135bf60f82 | 52 | void Freemaster::Poll() { |
| JardaPajskr | 0:fb135bf60f82 | 53 | FMSTR_Poll(); |
| JardaPajskr | 0:fb135bf60f82 | 54 | } |
| JardaPajskr | 0:fb135bf60f82 | 55 | |
| JardaPajskr | 8:17470feaa6be | 56 | void Freemaster::GetAppCmd(void) |
| JardaPajskr | 8:17470feaa6be | 57 | { |
| JardaPajskr | 8:17470feaa6be | 58 | FMSTR_GetAppCmd(); |
| JardaPajskr | 8:17470feaa6be | 59 | } |
| JardaPajskr | 8:17470feaa6be | 60 | |
| JardaPajskr | 8:17470feaa6be | 61 | FMSTR_APPCMD_PDATA Freemaster::GetAppCmdData(FMSTR_SIZE* pDataLen) |
| JardaPajskr | 8:17470feaa6be | 62 | { |
| JardaPajskr | 8:17470feaa6be | 63 | return FMSTR_GetAppCmdData(pDataLen); |
| JardaPajskr | 8:17470feaa6be | 64 | } |
| JardaPajskr | 8:17470feaa6be | 65 | |
| JardaPajskr | 8:17470feaa6be | 66 | FMSTR_BOOL Freemaster::RegisterAppCmdCall(FMSTR_APPCMD_CODE nAppCmdCode, FMSTR_PAPPCMDFUNC pCallbackFunc) |
| JardaPajskr | 8:17470feaa6be | 67 | { |
| JardaPajskr | 8:17470feaa6be | 68 | return FMSTR_RegisterAppCmdCall(nAppCmdCode, pCallbackFunc); |
| JardaPajskr | 8:17470feaa6be | 69 | } |
| JardaPajskr | 8:17470feaa6be | 70 | |
| JardaPajskr | 8:17470feaa6be | 71 | void Freemaster::AppCmdAck(FMSTR_APPCMD_RESULT nResultCode) |
| JardaPajskr | 8:17470feaa6be | 72 | { |
| JardaPajskr | 8:17470feaa6be | 73 | FMSTR_AppCmdAck(nResultCode); |
| JardaPajskr | 8:17470feaa6be | 74 | } |
| JardaPajskr | 8:17470feaa6be | 75 | |
| JardaPajskr | 8:17470feaa6be | 76 | void Freemaster::AppCmdSetResponseData(FMSTR_ADDR nResultDataAddr, FMSTR_SIZE nResultDataLen) |
| JardaPajskr | 8:17470feaa6be | 77 | { |
| JardaPajskr | 8:17470feaa6be | 78 | FMSTR_AppCmdSetResponseData(nResultDataAddr, nResultDataLen); |
| JardaPajskr | 8:17470feaa6be | 79 | } |
| JardaPajskr | 8:17470feaa6be | 80 | |
| JardaPajskr | 0:fb135bf60f82 | 81 | void Freemaster::_irq_handler(uint32_t id, SerialIrq irq_type) { |
| JardaPajskr | 0:fb135bf60f82 | 82 | FMSTR_Isr(); |
| JardaPajskr | 0:fb135bf60f82 | 83 | } |
| JardaPajskr | 0:fb135bf60f82 | 84 | |
| JardaPajskr | 0:fb135bf60f82 | 85 | } // namespace mbed |
| JardaPajskr | 0:fb135bf60f82 | 86 | |
| JardaPajskr | 0:fb135bf60f82 | 87 | #endif |
