Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Sun Nov 16 20:53:05 2014 +0000
Revision:
19:8b6f13b16bf5
Parent:
14:b2f3414a55d3
Child:
20:355a9738a180
changed default baudrate to 115200bd

Who changed what in which revision?

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