class library to access fischertechnik interfaces via USB
Dependencies: FatFileSystem mbed myBlueUSB neigbourhood rfcomm sdp
ftlib/ftlibclass.cpp@1:4676e8b9b357, 2013-03-11 (annotated)
- Committer:
- networker
- Date:
- Mon Mar 11 08:04:37 2013 +0000
- Revision:
- 1:4676e8b9b357
- Parent:
- 0:7da612835693
first publication of this experimental class, just for sharing wip
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
networker |
0:7da612835693 | 1 | #include "mbed.h" |
networker |
0:7da612835693 | 2 | #include "ftlib.h" |
networker |
0:7da612835693 | 3 | #include "ftlibclass.h" |
networker |
0:7da612835693 | 4 | #include "ftlibclasscom.h" |
networker |
0:7da612835693 | 5 | #include "ftlibclassusb.h" |
networker |
0:7da612835693 | 6 | |
networker |
0:7da612835693 | 7 | |
networker |
0:7da612835693 | 8 | |
networker |
0:7da612835693 | 9 | ftlib* ftlib::lib = 0; |
networker |
0:7da612835693 | 10 | |
networker |
0:7da612835693 | 11 | unsigned ftlib::InitFtLib() { |
networker |
0:7da612835693 | 12 | lib = new ftlib; |
networker |
0:7da612835693 | 13 | return FTLIB_ERR_SUCCESS; |
networker |
0:7da612835693 | 14 | } |
networker |
0:7da612835693 | 15 | |
networker |
0:7da612835693 | 16 | void ftlib::onTick() { |
networker |
0:7da612835693 | 17 | ftusbdev::onTick(); |
networker |
0:7da612835693 | 18 | ftcommdev::onTick(); |
networker |
0:7da612835693 | 19 | } |
networker |
0:7da612835693 | 20 | |
networker |
0:7da612835693 | 21 | void ftlib::poll() { |
networker |
0:7da612835693 | 22 | ftusbdev::poll(); //this function should be called repetetively from the main event loop |
networker |
0:7da612835693 | 23 | ftcommdev::poll(); |
networker |
0:7da612835693 | 24 | } |
networker |
0:7da612835693 | 25 | |
networker |
0:7da612835693 | 26 | unsigned ftlib::CloseFtLib() { |
networker |
0:7da612835693 | 27 | delete lib; |
networker |
0:7da612835693 | 28 | lib = 0; |
networker |
0:7da612835693 | 29 | return FTLIB_ERR_SUCCESS; |
networker |
0:7da612835693 | 30 | } |
networker |
0:7da612835693 | 31 | |
networker |
0:7da612835693 | 32 | unsigned ftlib::IsFtLibInit() { |
networker |
0:7da612835693 | 33 | return lib ? FTLIB_ERR_LIB_IS_INITIALIZED : FTLIB_ERR_LIB_IS_NOT_INITIALIZED; |
networker |
0:7da612835693 | 34 | } |
networker |
0:7da612835693 | 35 | |
networker |
0:7da612835693 | 36 | unsigned ftlib::CloseAllFtDevices() { |
networker |
0:7da612835693 | 37 | ftusbdev::CloseAllFtDevices(); |
networker |
0:7da612835693 | 38 | ftcommdev::CloseAllFtDevices(); |
networker |
0:7da612835693 | 39 | return FTLIB_ERR_SUCCESS; |
networker |
0:7da612835693 | 40 | } |
networker |
0:7da612835693 | 41 | |
networker |
0:7da612835693 | 42 | int ftlib::FtproductIDToInterfaceID(int iProductID) { |
networker |
0:7da612835693 | 43 | switch (iProductID) { |
networker |
0:7da612835693 | 44 | case ROBO_IF_PRODUCT_ID: |
networker |
0:7da612835693 | 45 | return FT_ROBO_IF_USB; |
networker |
0:7da612835693 | 46 | case EXT_IF_PRODUCT_ID: |
networker |
0:7da612835693 | 47 | return FT_ROBO_IO_EXTENSION; |
networker |
0:7da612835693 | 48 | case RF_DATA_LINK_PRODUCT_ID: |
networker |
0:7da612835693 | 49 | return FT_ROBO_RF_DATA_LINK; |
networker |
0:7da612835693 | 50 | } |
networker |
0:7da612835693 | 51 | |
networker |
0:7da612835693 | 52 | return 0; |
networker |
0:7da612835693 | 53 | } |
networker |
0:7da612835693 | 54 | |
networker |
0:7da612835693 | 55 | char * ftlib::GetFtLibErrorString(unsigned dwErrorCode, unsigned dwTyp) { |
networker |
0:7da612835693 | 56 | char *buffer = new char[128]; |
networker |
0:7da612835693 | 57 | |
networker |
0:7da612835693 | 58 | switch (dwErrorCode) { |
networker |
0:7da612835693 | 59 | case FTLIB_ERR_IF_NO_PROGRAM: |
networker |
0:7da612835693 | 60 | if (dwTyp) strncpy(buffer, "There is no program stored to work with", 128); |
networker |
0:7da612835693 | 61 | else strncpy(buffer, "FTLIB_ERR_IF_NO_PROGRAM", 128); |
networker |
0:7da612835693 | 62 | break; |
networker |
0:7da612835693 | 63 | case FTLIB_ERR_SUCCESS: |
networker |
0:7da612835693 | 64 | if (dwTyp) strncpy(buffer, "Everything is fine", 128); |
networker |
0:7da612835693 | 65 | else strncpy(buffer, "FTLIB_ERR_SUCCESS", 128); |
networker |
0:7da612835693 | 66 | break; |
networker |
0:7da612835693 | 67 | case FTLIB_ERR_THREAD_IS_RUNNING: |
networker |
0:7da612835693 | 68 | if (dwTyp) strncpy(buffer, "Thread has been started successfully", 128); |
networker |
0:7da612835693 | 69 | else strncpy(buffer, "FTLIB_ERR_THREAD_IS_RUNNING", 128); |
networker |
0:7da612835693 | 70 | break; |
networker |
0:7da612835693 | 71 | case FTLIB_ERR_DOWNLOAD: |
networker |
0:7da612835693 | 72 | if (dwTyp) strncpy(buffer, "Failed to upload the program", 128); |
networker |
0:7da612835693 | 73 | else strncpy(buffer, "FTLIB_ERR_DOWNLOAD", 128); |
networker |
0:7da612835693 | 74 | break; |
networker |
0:7da612835693 | 75 | case FTLIB_ERR_DOWNLOAD_WRONG_MEM_BLOCK: |
networker |
0:7da612835693 | 76 | if (dwTyp) strncpy(buffer, "Bad target to upload the program to", 128); |
networker |
0:7da612835693 | 77 | else strncpy(buffer, "FTLIB_ERR_DOWNLOAD_WRONG_MEM_BLOCK", 128); |
networker |
0:7da612835693 | 78 | break; |
networker |
0:7da612835693 | 79 | case FTLIB_ERR_INVALID_PARAM: |
networker |
0:7da612835693 | 80 | if (dwTyp) strncpy(buffer, "A parameter specified has a wrong value", 128); |
networker |
0:7da612835693 | 81 | else strncpy(buffer, "FTLIB_ERR_INVALID_PARAM", 128); |
networker |
0:7da612835693 | 82 | break; |
networker |
0:7da612835693 | 83 | case FTLIB_ERR_LIB_IS_INITIALIZED: |
networker |
0:7da612835693 | 84 | if (dwTyp) strncpy(buffer, "This library has been initialized", 128); |
networker |
0:7da612835693 | 85 | else strncpy(buffer, "FTLIB_ERR_LIB_IS_INITIALIZED", 128); |
networker |
0:7da612835693 | 86 | break; |
networker |
0:7da612835693 | 87 | case FTLIB_ERR_NOT_SUPPORTED: |
networker |
0:7da612835693 | 88 | if (dwTyp) strncpy(buffer, "The requested action is not supported", 128); |
networker |
0:7da612835693 | 89 | else strncpy(buffer, "FTLIB_ERR_NOT_SUPPORTED", 128); |
networker |
0:7da612835693 | 90 | break; |
networker |
0:7da612835693 | 91 | case FTLIB_ERR_PORT_NUMBER_IS_NULL: |
networker |
0:7da612835693 | 92 | if (dwTyp) strncpy(buffer, "No handle given", 128); |
networker |
0:7da612835693 | 93 | else strncpy(buffer, "FTLIB_ERR_PORT_NUMBER_IS_NULL", 128); |
networker |
0:7da612835693 | 94 | break; |
networker |
0:7da612835693 | 95 | case FTLIB_ERR_THREAD_NOT_RUNNING: |
networker |
0:7da612835693 | 96 | if (dwTyp) strncpy(buffer, "Unable to start the thread", 128); |
networker |
0:7da612835693 | 97 | else strncpy(buffer, "FTLIB_ERR_THREAD_NOT_RUNNING", 128); |
networker |
0:7da612835693 | 98 | break; |
networker |
0:7da612835693 | 99 | default: |
networker |
0:7da612835693 | 100 | strncpy(buffer, "Unknown", 128); |
networker |
0:7da612835693 | 101 | } |
networker |
0:7da612835693 | 102 | |
networker |
0:7da612835693 | 103 | return buffer; |
networker |
0:7da612835693 | 104 | } |
networker |
0:7da612835693 | 105 |