简介
使用set
与get
方式实现的金字塔型架构,最下层仅提供函数调用,例如tcp,udp,uart,gpio等,第二层是模块层,这一层通过pthread线程实现自循环式模块实现,通过get与set对模块数据进行获取与设置.最后是逻辑层,仅对下层数据进行逻辑操作,不做模块实现.
文件结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
| . ├── CMakeLists.txt ├── lib │ └── libcontrolcan.so └── src ├── GROUND_PANEL │ ├── Driver │ │ ├── Driver.h │ │ ├── Driver_utils.cpp │ │ ├── Driver_utils.h │ │ ├── Gpio.cpp │ │ ├── Gpio.h │ │ ├── controlcan.cpp │ │ ├── controlcan.h │ │ ├── socketCAN.cpp │ │ ├── socketCAN.h │ │ ├── tcp_cilent.cpp │ │ ├── tcp_cilent.h │ │ ├── usart.cpp │ │ └── usart.h │ ├── Math │ │ ├── Math.h │ │ ├── pid_control.cpp │ │ └── pid_control.h │ ├── ThirdParts │ │ ├── CFG_ini.cpp │ │ ├── CFG_ini.h │ │ ├── ModBUS │ │ │ ├── ascii │ │ │ │ ├── mbascii.c │ │ │ │ └── mbascii.h │ │ │ ├── functions │ │ │ │ ├── mbfunccoils.c │ │ │ │ ├── mbfuncdiag.c │ │ │ │ ├── mbfuncdisc.c │ │ │ │ ├── mbfuncholding.c │ │ │ │ ├── mbfuncinput.c │ │ │ │ ├── mbfuncother.c │ │ │ │ └── mbutils.c │ │ │ ├── include │ │ │ │ ├── mb.h │ │ │ │ ├── mbconfig.h │ │ │ │ ├── mbframe.h │ │ │ │ ├── mbfunc.h │ │ │ │ ├── mbport.h │ │ │ │ ├── mbproto.h │ │ │ │ └── mbutils.h │ │ │ ├── mb.c │ │ │ ├── port │ │ │ │ ├── port.h │ │ │ │ ├── portevent.c │ │ │ │ ├── portother.c │ │ │ │ ├── portserial.c │ │ │ │ └── porttimer.c │ │ │ ├── rtu │ │ │ │ ├── mbcrc.c │ │ │ │ ├── mbcrc.h │ │ │ │ ├── mbrtu.c │ │ │ │ └── mbrtu.h │ │ │ └── tcp │ │ │ ├── mbtcp.c │ │ │ └── mbtcp.h │ │ ├── cJSON.c │ │ ├── cJSON.h │ │ ├── tinyxml2.cpp │ │ └── tinyxml2.h │ └── param │ ├── AGVParameter.h │ ├── CFG.c │ ├── CFG.h │ ├── env_configure.c │ └── env_configure.h ├── Module │ ├── ActionCTRL │ │ ├── ActionCTRL.cpp │ │ ├── ActionCTRL.h │ │ └── ActionCTRLData.h │ ├── Battery │ │ ├── Battery.cpp │ │ ├── Battery.h │ │ ├── BatteryData.h │ │ ├── EIKTO_battery.cpp │ │ ├── EIKTO_battery.h │ │ ├── FR_battery.cpp │ │ └── FR_battery.h │ ├── CommWithPC │ │ ├── CommWithPC.cpp │ │ ├── CommWithPC.h │ │ └── CommWithPCData.h │ ├── Encoder │ │ ├── Encoder.cpp │ │ ├── Encoder.h │ │ ├── EncoderData.h │ │ ├── TOFI_encoder.cpp │ │ └── TOFI_encoder.h │ ├── HandShank │ │ ├── HandShank.cpp │ │ ├── HandShank.h │ │ ├── HandShankData.h │ │ ├── Logitech_controller.cpp │ │ └── Logitech_controller.h │ ├── IoBoard │ │ ├── IoBoard.cpp │ │ ├── IoBoard.h │ │ └── IoBoardData.h │ ├── Location │ │ ├── Location.cpp │ │ ├── Location.h │ │ └── LocationData.h │ ├── Map │ │ ├── LaserMAP.cpp │ │ ├── LaserMAP.h │ │ ├── Map.cpp │ │ ├── Map.h │ │ └── MapData.h │ ├── Module.cpp │ ├── Module.h │ ├── MoveCTRL │ │ ├── Kunhou │ │ │ ├── Kunhou_cJSON.cpp │ │ │ └── Kunhou_cJSON.h │ │ ├── MoveCTRL.cpp │ │ ├── MoveCTRL.h │ │ ├── MoveCtrlData.h │ │ └── Tongyi_Diff_Drive │ │ ├── Tongyi_Driver.cpp │ │ ├── Tongyi_Driver.h │ │ ├── diff_control.cpp │ │ └── diff_control.h │ ├── log.cpp │ └── log.h ├── Task │ ├── ModbusHMI.cpp │ ├── ModbusHMI.h │ ├── Music_Led.cpp │ ├── Music_Led.h │ ├── Safety.cpp │ ├── Safety.h │ ├── Task.cpp │ ├── Task.h │ ├── autoCtrl.cpp │ ├── autoCtrl.h │ ├── manualCtrl.cpp │ └── manualCtrl.h └── main.cpp
|
注意
需要注意的一点是每个特定模块又三个对外文件,module.cpp
module.h
moduleData.h
模块使用,只有使用时初始化线程,如果不使用则注释掉
1 2 3 4 5 6
| #include"HandShank.h"
void init_HandShank() { Logitech_thread(); }
|