Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

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?

UserRevisionLine numberNew 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