Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Sun Nov 16 21:22:03 2014 +0000
Revision:
20:355a9738a180
Parent:
19:8b6f13b16bf5
updated header files

Who changed what in which revision?

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