Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Wed Jun 04 14:48:34 2014 +0000
Revision:
10:ee28cf2ae687
Parent:
9:61b2beb811bf
Child:
11:d1de61dc3766
updated library for K64

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