
Refactoring and other updates
Dependencies: BLE_API mbed nRF51822
Fork of nRF51822_SimpleChat by
ControllerFactory.cpp@7:806b08205b25, 2017-05-10 (annotated)
- Committer:
- carbune92
- Date:
- Wed May 10 07:15:19 2017 +0000
- Revision:
- 7:806b08205b25
- Parent:
- 5:fca87573ed92
fixed minor issues
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
carbune92 | 3:b6e4e5529a52 | 1 | |
carbune92 | 3:b6e4e5529a52 | 2 | #include "ControllerFactory.hpp" |
carbune92 | 3:b6e4e5529a52 | 3 | |
carbune92 | 3:b6e4e5529a52 | 4 | |
carbune92 | 5:fca87573ed92 | 5 | void ControllerFactory::createController (Controller **c, SysObjTypes ctrlType) { |
carbune92 | 3:b6e4e5529a52 | 6 | |
carbune92 | 3:b6e4e5529a52 | 7 | switch (ctrlType) { |
carbune92 | 3:b6e4e5529a52 | 8 | case P: //fall-through |
carbune92 | 3:b6e4e5529a52 | 9 | case PI: |
carbune92 | 3:b6e4e5529a52 | 10 | case PID: { |
carbune92 | 3:b6e4e5529a52 | 11 | *c = new PIDController(); |
carbune92 | 3:b6e4e5529a52 | 12 | break; |
carbune92 | 3:b6e4e5529a52 | 13 | } |
carbune92 | 3:b6e4e5529a52 | 14 | case RST: { |
carbune92 | 3:b6e4e5529a52 | 15 | *c = new RSTController(); |
carbune92 | 3:b6e4e5529a52 | 16 | break; |
carbune92 | 3:b6e4e5529a52 | 17 | } |
carbune92 | 3:b6e4e5529a52 | 18 | default: *c = 0; |
carbune92 | 3:b6e4e5529a52 | 19 | } |
carbune92 | 3:b6e4e5529a52 | 20 | } |
carbune92 | 3:b6e4e5529a52 | 21 | |
carbune92 | 3:b6e4e5529a52 | 22 | void ControllerFactory::createControllerParams (ControllerParams &cp, SysObjTypes &ctrlType, uint8_t *paramsList, int paramsListLen) { |
carbune92 | 3:b6e4e5529a52 | 23 | /* |
carbune92 | 3:b6e4e5529a52 | 24 | paramsList form: { |
carbune92 | 3:b6e4e5529a52 | 25 | P: [kp] |
carbune92 | 3:b6e4e5529a52 | 26 | PI: [kp, ti] |
carbune92 | 3:b6e4e5529a52 | 27 | PID: [kp, ti, td] |
carbune92 | 3:b6e4e5529a52 | 28 | RST: [nR,r0,r1,...,r_nR,nS,s0,s1,...,s_nS,nT,t0,t1,...,t_nT] |
carbune92 | 3:b6e4e5529a52 | 29 | } |
carbune92 | 3:b6e4e5529a52 | 30 | cond: paramsListLen = nR + nS + nT + 6 |
carbune92 | 3:b6e4e5529a52 | 31 | */ |
carbune92 | 3:b6e4e5529a52 | 32 | switch (ctrlType) { |
carbune92 | 3:b6e4e5529a52 | 33 | case P: { |
carbune92 | 3:b6e4e5529a52 | 34 | cp.kp = *paramsList; |
carbune92 | 3:b6e4e5529a52 | 35 | cp.ti = 0; |
carbune92 | 3:b6e4e5529a52 | 36 | cp.td = 0; |
carbune92 | 3:b6e4e5529a52 | 37 | break; |
carbune92 | 3:b6e4e5529a52 | 38 | } |
carbune92 | 3:b6e4e5529a52 | 39 | case PI: { |
carbune92 | 3:b6e4e5529a52 | 40 | cp.kp = *paramsList; |
carbune92 | 3:b6e4e5529a52 | 41 | cp.ti = paramsList[1]; |
carbune92 | 3:b6e4e5529a52 | 42 | cp.td = 0; |
carbune92 | 3:b6e4e5529a52 | 43 | break; |
carbune92 | 3:b6e4e5529a52 | 44 | } |
carbune92 | 3:b6e4e5529a52 | 45 | case PID: { |
carbune92 | 3:b6e4e5529a52 | 46 | cp.kp = *paramsList; |
carbune92 | 3:b6e4e5529a52 | 47 | cp.ti = paramsList[1]; |
carbune92 | 3:b6e4e5529a52 | 48 | cp.td = paramsList[2]; |
carbune92 | 3:b6e4e5529a52 | 49 | break; |
carbune92 | 3:b6e4e5529a52 | 50 | } |
carbune92 | 3:b6e4e5529a52 | 51 | case RST: { |
carbune92 | 3:b6e4e5529a52 | 52 | int i; |
carbune92 | 3:b6e4e5529a52 | 53 | cp.ordR = *paramsList; |
carbune92 | 3:b6e4e5529a52 | 54 | cp.R = new float[cp.ordR+1]; |
carbune92 | 3:b6e4e5529a52 | 55 | for (i=1; i<cp.ordR+2;i++) { |
carbune92 | 3:b6e4e5529a52 | 56 | cp.R[i] = paramsList[i]; |
carbune92 | 3:b6e4e5529a52 | 57 | } |
carbune92 | 3:b6e4e5529a52 | 58 | cp.ordS = paramsList[i]; |
carbune92 | 3:b6e4e5529a52 | 59 | cp.S = new float[cp.ordS+1]; |
carbune92 | 3:b6e4e5529a52 | 60 | for (i=cp.ordR+2; i<cp.ordR+cp.ordS+3; i++) { |
carbune92 | 3:b6e4e5529a52 | 61 | cp.S[i] = paramsList[i]; |
carbune92 | 3:b6e4e5529a52 | 62 | } |
carbune92 | 3:b6e4e5529a52 | 63 | cp.ordT = paramsList[i]; |
carbune92 | 3:b6e4e5529a52 | 64 | cp.T = new float[cp.ordT+1]; |
carbune92 | 3:b6e4e5529a52 | 65 | for(i=cp.ordR+cp.ordS+3; i<paramsListLen; i++) { |
carbune92 | 3:b6e4e5529a52 | 66 | cp.T[i] = paramsList[i]; |
carbune92 | 3:b6e4e5529a52 | 67 | } |
carbune92 | 3:b6e4e5529a52 | 68 | break; |
carbune92 | 3:b6e4e5529a52 | 69 | } |
carbune92 | 3:b6e4e5529a52 | 70 | } |
carbune92 | 3:b6e4e5529a52 | 71 | } |