ああ

Dependencies:   F7_Ethernet mbed mbed-rtos

Committer:
sayzyas
Date:
Mon Sep 14 06:38:16 2020 +0000
Revision:
9:a4cc7dc2d92f
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sayzyas 9:a4cc7dc2d92f 1 /*
sayzyas 9:a4cc7dc2d92f 2 DEBUG PRINT MACRO
sayzyas 9:a4cc7dc2d92f 3 http://qiita.com/saltheads/items/e1b0ab54d3d6029c9593
sayzyas 9:a4cc7dc2d92f 4 http://tricky-code.net/nicecode/code10.php
sayzyas 9:a4cc7dc2d92f 5 */
sayzyas 9:a4cc7dc2d92f 6 /* Information */
sayzyas 9:a4cc7dc2d92f 7 #define LatestUpDate "2020.07.02"
sayzyas 9:a4cc7dc2d92f 8 #define ProgramRevision "Rev 0.01"
sayzyas 9:a4cc7dc2d92f 9 #define Author "y.saito"
sayzyas 9:a4cc7dc2d92f 10 #define Company "Sanei Co.,Ltd."
sayzyas 9:a4cc7dc2d92f 11
sayzyas 9:a4cc7dc2d92f 12 //#define __CREATE_SETTING_FILE__
sayzyas 9:a4cc7dc2d92f 13 //#define __TARGET_BOARD_CHECK__
sayzyas 9:a4cc7dc2d92f 14
sayzyas 9:a4cc7dc2d92f 15
sayzyas 9:a4cc7dc2d92f 16 //#define __WInchDebug__ // For debugging
sayzyas 9:a4cc7dc2d92f 17
sayzyas 9:a4cc7dc2d92f 18
sayzyas 9:a4cc7dc2d92f 19 // Comment out if net setting is FIX.
sayzyas 9:a4cc7dc2d92f 20 // #define __NET_SETTING_FROM_LFS__
sayzyas 9:a4cc7dc2d92f 21
sayzyas 9:a4cc7dc2d92f 22
sayzyas 9:a4cc7dc2d92f 23 // Read motor current
sayzyas 9:a4cc7dc2d92f 24 #define __READ_TFM_MOTOR_CURRENT__
sayzyas 9:a4cc7dc2d92f 25
sayzyas 9:a4cc7dc2d92f 26 #define __IIC_COMAMND_SEND__
sayzyas 9:a4cc7dc2d92f 27
sayzyas 9:a4cc7dc2d92f 28 #define __SET_WINCH_MOTOR_SPEED_BY_VOLUME__
sayzyas 9:a4cc7dc2d92f 29
sayzyas 9:a4cc7dc2d92f 30 /**********************************************
sayzyas 9:a4cc7dc2d92f 31 For Debugging
sayzyas 9:a4cc7dc2d92f 32 ***********************************************/
sayzyas 9:a4cc7dc2d92f 33 #define __DEBUG_L0__
sayzyas 9:a4cc7dc2d92f 34 #define __DEBUG_L1__
sayzyas 9:a4cc7dc2d92f 35 #define __DEBUG_L2__
sayzyas 9:a4cc7dc2d92f 36 #define __DEBUG_L3__
sayzyas 9:a4cc7dc2d92f 37 #define __DEBUG_L4__
sayzyas 9:a4cc7dc2d92f 38 #define __DEBUG_L5__
sayzyas 9:a4cc7dc2d92f 39
sayzyas 9:a4cc7dc2d92f 40 #ifdef __DEBUG_L0__
sayzyas 9:a4cc7dc2d92f 41 #define DEBUG_PRINT_L0(...) pc.printf(__VA_ARGS__)
sayzyas 9:a4cc7dc2d92f 42 #else
sayzyas 9:a4cc7dc2d92f 43 #define DEBUG_PRINT_L0(...)
sayzyas 9:a4cc7dc2d92f 44 #endif
sayzyas 9:a4cc7dc2d92f 45 #ifdef __DEBUG_L1__
sayzyas 9:a4cc7dc2d92f 46 #define DEBUG_PRINT_L1(...) pc.printf(__VA_ARGS__)
sayzyas 9:a4cc7dc2d92f 47 #else
sayzyas 9:a4cc7dc2d92f 48 #define DEBUG_PRINT_L1(...)
sayzyas 9:a4cc7dc2d92f 49 #endif
sayzyas 9:a4cc7dc2d92f 50 #ifdef __DEBUG_L2__
sayzyas 9:a4cc7dc2d92f 51 #define DEBUG_PRINT_L2(...) pc.printf(__VA_ARGS__)
sayzyas 9:a4cc7dc2d92f 52 #else
sayzyas 9:a4cc7dc2d92f 53 #define DEBUG_PRINT_L2(...)
sayzyas 9:a4cc7dc2d92f 54 #endif
sayzyas 9:a4cc7dc2d92f 55 #ifdef __DEBUG_L3__
sayzyas 9:a4cc7dc2d92f 56 #define DEBUG_PRINT_L3(...) pc.printf(__VA_ARGS__)
sayzyas 9:a4cc7dc2d92f 57 #else
sayzyas 9:a4cc7dc2d92f 58 #define DEBUG_PRINT_L3(...)
sayzyas 9:a4cc7dc2d92f 59 #endif
sayzyas 9:a4cc7dc2d92f 60 #ifdef __DEBUG_L4__
sayzyas 9:a4cc7dc2d92f 61 #define DEBUG_PRINT_L4(...) pc.printf(__VA_ARGS__)
sayzyas 9:a4cc7dc2d92f 62 #else
sayzyas 9:a4cc7dc2d92f 63 #define DEBUG_PRINT_L4(...)
sayzyas 9:a4cc7dc2d92f 64 #endif
sayzyas 9:a4cc7dc2d92f 65 #ifdef __DEBUG_L5__
sayzyas 9:a4cc7dc2d92f 66 #define DEBUG_PRINT_L5(...) pc.printf(__VA_ARGS__)
sayzyas 9:a4cc7dc2d92f 67 #else
sayzyas 9:a4cc7dc2d92f 68 #define DEBUG_PRINT_L5(...)
sayzyas 9:a4cc7dc2d92f 69 #endif
sayzyas 9:a4cc7dc2d92f 70
sayzyas 9:a4cc7dc2d92f 71
sayzyas 9:a4cc7dc2d92f 72
sayzyas 9:a4cc7dc2d92f 73 /* *****
sayzyas 9:a4cc7dc2d92f 74 Constant definition
sayzyas 9:a4cc7dc2d92f 75 ***** */
sayzyas 9:a4cc7dc2d92f 76 #define BLINKING_RATE_MS 100 /* Blinking rate */
sayzyas 9:a4cc7dc2d92f 77
sayzyas 9:a4cc7dc2d92f 78
sayzyas 9:a4cc7dc2d92f 79 #define DIR_CCW 1
sayzyas 9:a4cc7dc2d92f 80 #define DIR_CW 0
sayzyas 9:a4cc7dc2d92f 81 #define MOTOR_ON 1
sayzyas 9:a4cc7dc2d92f 82 #define MOTOR_OFF 0
sayzyas 9:a4cc7dc2d92f 83
sayzyas 9:a4cc7dc2d92f 84 #define L_001mm 1000 * 2
sayzyas 9:a4cc7dc2d92f 85 #define L_002mm 2000 * 2
sayzyas 9:a4cc7dc2d92f 86 #define L_003mm 3000 * 2
sayzyas 9:a4cc7dc2d92f 87 #define L_004mm 4000 * 2
sayzyas 9:a4cc7dc2d92f 88 #define L_005mm 5000 * 2
sayzyas 9:a4cc7dc2d92f 89 #define L_006mm 6000 * 2
sayzyas 9:a4cc7dc2d92f 90 #define L_007mm 7000 * 2
sayzyas 9:a4cc7dc2d92f 91 #define L_008mm 8000 * 2
sayzyas 9:a4cc7dc2d92f 92 #define L_009mm 9000 * 2
sayzyas 9:a4cc7dc2d92f 93 #define L_010mm 10000 * 2
sayzyas 9:a4cc7dc2d92f 94 #define L_050mm 50000 * 2
sayzyas 9:a4cc7dc2d92f 95 #define L_100mm 100000 * 2
sayzyas 9:a4cc7dc2d92f 96
sayzyas 9:a4cc7dc2d92f 97
sayzyas 9:a4cc7dc2d92f 98
sayzyas 9:a4cc7dc2d92f 99
sayzyas 9:a4cc7dc2d92f 100
sayzyas 9:a4cc7dc2d92f 101
sayzyas 9:a4cc7dc2d92f 102
sayzyas 9:a4cc7dc2d92f 103
sayzyas 9:a4cc7dc2d92f 104
sayzyas 9:a4cc7dc2d92f 105
sayzyas 9:a4cc7dc2d92f 106
sayzyas 9:a4cc7dc2d92f 107
sayzyas 9:a4cc7dc2d92f 108
sayzyas 9:a4cc7dc2d92f 109
sayzyas 9:a4cc7dc2d92f 110
sayzyas 9:a4cc7dc2d92f 111
sayzyas 9:a4cc7dc2d92f 112
sayzyas 9:a4cc7dc2d92f 113
sayzyas 9:a4cc7dc2d92f 114
sayzyas 9:a4cc7dc2d92f 115
sayzyas 9:a4cc7dc2d92f 116
sayzyas 9:a4cc7dc2d92f 117
sayzyas 9:a4cc7dc2d92f 118
sayzyas 9:a4cc7dc2d92f 119
sayzyas 9:a4cc7dc2d92f 120
sayzyas 9:a4cc7dc2d92f 121
sayzyas 9:a4cc7dc2d92f 122
sayzyas 9:a4cc7dc2d92f 123 /* Above is still under construction ..... */
sayzyas 9:a4cc7dc2d92f 124
sayzyas 9:a4cc7dc2d92f 125 #define __DISP_GAMAPAD_STATUS_ALL__
sayzyas 9:a4cc7dc2d92f 126 #define __DISP_WRITE_VALUE__
sayzyas 9:a4cc7dc2d92f 127
sayzyas 9:a4cc7dc2d92f 128 #define I2C_ADDRESS_HANDY 0x20
sayzyas 9:a4cc7dc2d92f 129 #define I2C_ADDRESS_WINCH 0x10
sayzyas 9:a4cc7dc2d92f 130 #define I2C_ADDRESS_TRANSFORM 0x08
sayzyas 9:a4cc7dc2d92f 131 #define I2C_ADDRESS_CRAWLER 0x04
sayzyas 9:a4cc7dc2d92f 132 #define I2C_ADDRESS_RESOLVER 0x02
sayzyas 9:a4cc7dc2d92f 133
sayzyas 9:a4cc7dc2d92f 134
sayzyas 9:a4cc7dc2d92f 135 #define _OK_ 1
sayzyas 9:a4cc7dc2d92f 136 #define _NG_ 0
sayzyas 9:a4cc7dc2d92f 137 #define _FAIL_ 0
sayzyas 9:a4cc7dc2d92f 138
sayzyas 9:a4cc7dc2d92f 139 #define ON 1
sayzyas 9:a4cc7dc2d92f 140 #define OFF 0
sayzyas 9:a4cc7dc2d92f 141
sayzyas 9:a4cc7dc2d92f 142 #define LFS_READ_COUNT 3
sayzyas 9:a4cc7dc2d92f 143 #define TARGET_CHECK_COUNT 10
sayzyas 9:a4cc7dc2d92f 144
sayzyas 9:a4cc7dc2d92f 145 //#define __DSP_MOTOR_CURRENT_
sayzyas 9:a4cc7dc2d92f 146
sayzyas 9:a4cc7dc2d92f 147 /* Usually this should be comment out */
sayzyas 9:a4cc7dc2d92f 148 //#define _COMMUNCATE_PC_BY_SERIAL_
sayzyas 9:a4cc7dc2d92f 149
sayzyas 9:a4cc7dc2d92f 150 // Should validate this definition when you use DHCP.
sayzyas 9:a4cc7dc2d92f 151 //#define __ETERNET_DHCP__
sayzyas 9:a4cc7dc2d92f 152
sayzyas 9:a4cc7dc2d92f 153 #define NumberOfPcCommand 11
sayzyas 9:a4cc7dc2d92f 154 #define NumberOfI2CCommand 14
sayzyas 9:a4cc7dc2d92f 155
sayzyas 9:a4cc7dc2d92f 156 /* I2C Command packet to motor controller */
sayzyas 9:a4cc7dc2d92f 157 /* For motor controller */
sayzyas 9:a4cc7dc2d92f 158 enum{
sayzyas 9:a4cc7dc2d92f 159 I2C_CP_PREAMBLE, // Preamble of command packet
sayzyas 9:a4cc7dc2d92f 160 I2C_CP_COMMAND, // instruction command
sayzyas 9:a4cc7dc2d92f 161 I2C_CP_M1_DIR, // motor1 rotation direction
sayzyas 9:a4cc7dc2d92f 162 I2C_CP_M1_SPEED, // motor1 rotation speed
sayzyas 9:a4cc7dc2d92f 163 I2C_CP_M1_FWD_CNTTH_U, // motor1 current limit detection threshold upper byte
sayzyas 9:a4cc7dc2d92f 164 I2C_CP_M1_FWD_CNTTH_L, // motor1 current limit detection threshold lower byte
sayzyas 9:a4cc7dc2d92f 165 I2C_CP_M1_RVS_CNTTH_U, // motor1 current limit detection threshold upper byte
sayzyas 9:a4cc7dc2d92f 166 I2C_CP_M1_RVS_CNTTH_L, // motor1 current limit detection threshold lower byte
sayzyas 9:a4cc7dc2d92f 167 I2C_CP_M2_DIR, // motor2 rotation direction
sayzyas 9:a4cc7dc2d92f 168 I2C_CP_M2_SPEED, // motor2 rotation speed
sayzyas 9:a4cc7dc2d92f 169 I2C_CP_M2_FWD_CNTTH_U, // motor2 current limit detection threshold upper byte
sayzyas 9:a4cc7dc2d92f 170 I2C_CP_M2_FWD_CNTTH_L, // motor2 current limit detection threshold lower byte
sayzyas 9:a4cc7dc2d92f 171 I2C_CP_M2_RVS_CNTTH_U, // motor2 current limit detection threshold upper byte
sayzyas 9:a4cc7dc2d92f 172 I2C_CP_M2_RVS_CNTTH_L, // motor2 current limit detection threshold lower byte
sayzyas 9:a4cc7dc2d92f 173 };
sayzyas 9:a4cc7dc2d92f 174 /* For resolver reader controller */
sayzyas 9:a4cc7dc2d92f 175 enum{
sayzyas 9:a4cc7dc2d92f 176 I2C_CP_PREAMBLE_R, // Sub command
sayzyas 9:a4cc7dc2d92f 177 I2C_CP_COMMAND_R, // instruction command
sayzyas 9:a4cc7dc2d92f 178 I2C_CP_WDRAM_DIA_UPPER, // motor1 rotation direction
sayzyas 9:a4cc7dc2d92f 179 I2C_CP_WDRAM_DIA_LOWER, // motor1 rotation speed
sayzyas 9:a4cc7dc2d92f 180 I2C_CP_CCABLE_DIA_UPPER, // motor1 current limit detection threshold upper byte
sayzyas 9:a4cc7dc2d92f 181 I2C_CP_CCABLE_DIA_LOWER, // motor1 current limit detection threshold lower byte
sayzyas 9:a4cc7dc2d92f 182 I2C_CP_RESOLVER_RESO, // motor1 current limit detection threshold upper byte
sayzyas 9:a4cc7dc2d92f 183 I2C_CP_PRESET_CPOS_UPPER, // reserved
sayzyas 9:a4cc7dc2d92f 184 I2C_CP_PRESET_CPOS_LOWER, // reserved
sayzyas 9:a4cc7dc2d92f 185 I2C_CP_RES3, // reserved
sayzyas 9:a4cc7dc2d92f 186 I2C_CP_RES4, // reserved
sayzyas 9:a4cc7dc2d92f 187 I2C_CP_RES5, // reserved
sayzyas 9:a4cc7dc2d92f 188 I2C_CP_RES6, // reserved
sayzyas 9:a4cc7dc2d92f 189 I2C_CP_RES7, // reserved
sayzyas 9:a4cc7dc2d92f 190 };
sayzyas 9:a4cc7dc2d92f 191
sayzyas 9:a4cc7dc2d92f 192
sayzyas 9:a4cc7dc2d92f 193
sayzyas 9:a4cc7dc2d92f 194 /* Winch Operating mode */
sayzyas 9:a4cc7dc2d92f 195 enum{
sayzyas 9:a4cc7dc2d92f 196 WINCH_POSITION_CLEAR,
sayzyas 9:a4cc7dc2d92f 197 WINCH_PRESET_BASEDATA,
sayzyas 9:a4cc7dc2d92f 198 WINCH_MMODE_RELATIVE,
sayzyas 9:a4cc7dc2d92f 199 WINCH_MMODE_ABSOLUTE,
sayzyas 9:a4cc7dc2d92f 200 WINCH_STEPDOWN_BTN_ON,
sayzyas 9:a4cc7dc2d92f 201 WINCH_STEPDOWN_BTN_OFF,
sayzyas 9:a4cc7dc2d92f 202 WINCH_STEPUP_BTN_ON,
sayzyas 9:a4cc7dc2d92f 203 WINCH_STEPUP_BTN_OFF,
sayzyas 9:a4cc7dc2d92f 204 WINCH_U_STEPDOWN_BTN_ON,
sayzyas 9:a4cc7dc2d92f 205 WINCH_U_STEPDOWN_BTN_OFF,
sayzyas 9:a4cc7dc2d92f 206 WINCH_U_STEPUP_BTN_ON,
sayzyas 9:a4cc7dc2d92f 207 WINCH_U_STEPUP_BTN_OFF,
sayzyas 9:a4cc7dc2d92f 208 WINCH_PRESET_POSITION,
sayzyas 9:a4cc7dc2d92f 209 };
sayzyas 9:a4cc7dc2d92f 210
sayzyas 9:a4cc7dc2d92f 211 /* Game Pad defnition */
sayzyas 9:a4cc7dc2d92f 212 #define GAMEPAD_VID_LOGICOOL 0x046d
sayzyas 9:a4cc7dc2d92f 213 #define GAMEPAD_PID_LOGICOOL_F710 0xc219
sayzyas 9:a4cc7dc2d92f 214 #define GAMEPAD_PID_LOGICOOL_F310 0xc216
sayzyas 9:a4cc7dc2d92f 215
sayzyas 9:a4cc7dc2d92f 216 #define GAMEPAD_VID_SANWA 0x12bd
sayzyas 9:a4cc7dc2d92f 217 #define GAMEPAD_PID_SANWA_JYP70US 0xc003
sayzyas 9:a4cc7dc2d92f 218
sayzyas 9:a4cc7dc2d92f 219 #define GAMEPAD_VID_ELECOM 0x056e
sayzyas 9:a4cc7dc2d92f 220 #define GAMEPAD_PID_ELECOM_JCU3613M 0x2003
sayzyas 9:a4cc7dc2d92f 221
sayzyas 9:a4cc7dc2d92f 222 #define GAMEPAD_VID_RSTHANDY 0x1234
sayzyas 9:a4cc7dc2d92f 223 #define GAMEPAD_PID_RSTHANDY 0x0006
sayzyas 9:a4cc7dc2d92f 224
sayzyas 9:a4cc7dc2d92f 225
sayzyas 9:a4cc7dc2d92f 226 /* Ether net */
sayzyas 9:a4cc7dc2d92f 227 #define TCP_SERVER_PORT 10002
sayzyas 9:a4cc7dc2d92f 228 #define UDP_SERVER_PORT 10000
sayzyas 9:a4cc7dc2d92f 229 //#define ECHO_SERVER_PORT 7
sayzyas 9:a4cc7dc2d92f 230
sayzyas 9:a4cc7dc2d92f 231 #define MOTOR_FWD 'F' /* Forward Rotation */
sayzyas 9:a4cc7dc2d92f 232 #define MOTOR_RVS 'R' /* Reverse Rotation */
sayzyas 9:a4cc7dc2d92f 233 #define MOTOR_STP 'S' /* Stop */
sayzyas 9:a4cc7dc2d92f 234
sayzyas 9:a4cc7dc2d92f 235 // =========================================================
sayzyas 9:a4cc7dc2d92f 236 // Setting Values
sayzyas 9:a4cc7dc2d92f 237 // =========================================================
sayzyas 9:a4cc7dc2d92f 238 typedef struct {
sayzyas 9:a4cc7dc2d92f 239 int8_t sv_JS_ShapeMode; // JS Shape: 0=I, 1=KO
sayzyas 9:a4cc7dc2d92f 240 int8_t sv_JS_OpeMode; // JS Operation: 0=single, 1=dual
sayzyas 9:a4cc7dc2d92f 241 int8_t sv_WinchValid; // Winch function valid or not: 0=Tfm, Crawler valid, 1=Winch valid
sayzyas 9:a4cc7dc2d92f 242 int8_t res;
sayzyas 9:a4cc7dc2d92f 243 } basic_operation_t;
sayzyas 9:a4cc7dc2d92f 244
sayzyas 9:a4cc7dc2d92f 245 typedef struct {
sayzyas 9:a4cc7dc2d92f 246 uint16_t sv_WDM_ith_F; // 2 Current Threshold Winch Dram Motor Fwd rotation.
sayzyas 9:a4cc7dc2d92f 247 uint16_t sv_WDM_ith_R; // 2 Current Threshold Winch Dram Motor Rvs rotation.
sayzyas 9:a4cc7dc2d92f 248 uint16_t sv_WRM_ith_F; // 2 Current Threshold Winch .... Motor Fwd rotation.
sayzyas 9:a4cc7dc2d92f 249 uint16_t sv_WRM_ith_R; // 2 Current Threshold Winch .... Motor Rvs rotation.
sayzyas 9:a4cc7dc2d92f 250 uint8_t sv_WDM_hsrto_F; // 1 Winch Dram Motor high speed ratio Fwd
sayzyas 9:a4cc7dc2d92f 251 uint8_t sv_WDM_hsrto_R; // 1 Winch Dram Motor high speed ratio Rvs
sayzyas 9:a4cc7dc2d92f 252 uint8_t sv_WDM_lsrto_F; // 1 Winch Dram Motor low speed ratio Fwd
sayzyas 9:a4cc7dc2d92f 253 uint8_t sv_WDM_lsrto_R; // 1 Winch Dram Motor low speed ratio Rvs
sayzyas 9:a4cc7dc2d92f 254 uint8_t sv_WRM_hsrto_F; // 1 Winch .... Motor high speed limit Fwd
sayzyas 9:a4cc7dc2d92f 255 uint8_t sv_WRM_hsrto_R; // 1 Winch .... Motor high speed limit Rvs
sayzyas 9:a4cc7dc2d92f 256 uint8_t sv_WRM_lsrto_F; // 1 Winch .... Motor low speed ratio Fwd
sayzyas 9:a4cc7dc2d92f 257 uint8_t sv_WRM_lsrto_R; // 1 Winch .... Motor low speed ratio Rvs
sayzyas 9:a4cc7dc2d92f 258 uint16_t sv_WRS_DramDmrx100; // 2 Winch Dram diameter x 100;
sayzyas 9:a4cc7dc2d92f 259 uint16_t sv_WRS_CCableDmrx100; // 2 Winch CCable diameter x 100
sayzyas 9:a4cc7dc2d92f 260 uint8_t sv_WRS_RResolution; // 1 Winch Resolver resolution (bit)
sayzyas 9:a4cc7dc2d92f 261 uint8_t reserved; // 1 reserved for future use
sayzyas 9:a4cc7dc2d92f 262 } winch_SetValue_t; // 22 byte
sayzyas 9:a4cc7dc2d92f 263
sayzyas 9:a4cc7dc2d92f 264 typedef struct {
sayzyas 9:a4cc7dc2d92f 265 uint16_t sv_RFTM_ith_F; // 2 RF transform motor Fwd roration current threshold
sayzyas 9:a4cc7dc2d92f 266 uint16_t sv_RFTM_ith_R; // 2 RF transform motor Rvs roration current threshold
sayzyas 9:a4cc7dc2d92f 267 uint16_t sv_LBTM_ith_F; // 2 LB transform motor Fwd roration current threshold
sayzyas 9:a4cc7dc2d92f 268 uint16_t sv_LBTM_ith_R; // 2 LB transform motor Rvs roration current threshold
sayzyas 9:a4cc7dc2d92f 269 uint8_t sv_RFTM_srto_F; // 1 RF transform motor Fwd rotation speed ratio
sayzyas 9:a4cc7dc2d92f 270 uint8_t sv_RFTM_srto_R; // 1 RF transform motor Rvs rotation speed ratio
sayzyas 9:a4cc7dc2d92f 271 uint8_t sv_LBTM_srto_F; // 1 LB transform motor Fwd rotation speed ratio
sayzyas 9:a4cc7dc2d92f 272 uint8_t sv_LBTM_srto_R; // 1 LB transform motor Rvs rotation speed ratio
sayzyas 9:a4cc7dc2d92f 273 } tfm_SetValue_t; // 12 byte
sayzyas 9:a4cc7dc2d92f 274
sayzyas 9:a4cc7dc2d92f 275 typedef struct {
sayzyas 9:a4cc7dc2d92f 276 uint16_t sv_RFCM_ith_F; // 2 RF Crawler motor Fwd rotation current threshold
sayzyas 9:a4cc7dc2d92f 277 uint16_t sv_RFCM_ith_R; // 2 RF Crawler motor Rvs rotation current threshold
sayzyas 9:a4cc7dc2d92f 278 uint16_t sv_LBCM_ith_F; // 2 LB Crawler motor Fwd rotation current threshold
sayzyas 9:a4cc7dc2d92f 279 uint16_t sv_LBCM_ith_R; // 2 LB Crawler motor Rvs rotation current threshold
sayzyas 9:a4cc7dc2d92f 280 uint8_t sv_RFCM_srto_F; // 1 RF Crawler motor Fwd rotation speed limnit
sayzyas 9:a4cc7dc2d92f 281 uint8_t sv_RFCM_srto_R; // 1 RF Crawler motor Rvs rotation speed limnit
sayzyas 9:a4cc7dc2d92f 282 uint8_t sv_LBCM_srto_F; // 1 LB Crawler motor Fwd rotation speed limnit
sayzyas 9:a4cc7dc2d92f 283 uint8_t sv_LBCM_srto_R; // 1 LB Crawler motor Rvs rotation speed limnit
sayzyas 9:a4cc7dc2d92f 284 uint8_t sv_RFCM_dzu; // 1 R-Joystick upper dead zone width
sayzyas 9:a4cc7dc2d92f 285 uint8_t sv_RFCM_dzc; // 1 R-Joystick center value
sayzyas 9:a4cc7dc2d92f 286 uint8_t sv_RFCM_dzl; // 1 R-Joystick lower dead zone width
sayzyas 9:a4cc7dc2d92f 287 uint8_t sv_LBCM_dzu; // 1 L-Joystick upper dead zone width
sayzyas 9:a4cc7dc2d92f 288 uint8_t sv_LBCM_dzc; // 1 L-Joystick center value
sayzyas 9:a4cc7dc2d92f 289 uint8_t sv_LBCM_dzl; // 1 L-Joystick lower dead zone width
sayzyas 9:a4cc7dc2d92f 290 uint8_t reserved1; // 1
sayzyas 9:a4cc7dc2d92f 291 uint8_t reserved2; // 1
sayzyas 9:a4cc7dc2d92f 292 } crawler_SetValue_t; // 20 byte
sayzyas 9:a4cc7dc2d92f 293
sayzyas 9:a4cc7dc2d92f 294 typedef struct {
sayzyas 9:a4cc7dc2d92f 295 uint8_t sv_centerValue;
sayzyas 9:a4cc7dc2d92f 296 uint8_t sv_nsenseBand_s;
sayzyas 9:a4cc7dc2d92f 297 uint8_t sv_nsenseBand_w;
sayzyas 9:a4cc7dc2d92f 298 } js_SetValue_t;
sayzyas 9:a4cc7dc2d92f 299
sayzyas 9:a4cc7dc2d92f 300 typedef struct SetValue {
sayzyas 9:a4cc7dc2d92f 301 // operation_t operation;
sayzyas 9:a4cc7dc2d92f 302 winch_SetValue_t winchCtrl;
sayzyas 9:a4cc7dc2d92f 303 tfm_SetValue_t tfmCtrl;
sayzyas 9:a4cc7dc2d92f 304 crawler_SetValue_t crawlerCtrl;
sayzyas 9:a4cc7dc2d92f 305 // js_SetValue_t jsCtrl;
sayzyas 9:a4cc7dc2d92f 306 } setValue_t;
sayzyas 9:a4cc7dc2d92f 307
sayzyas 9:a4cc7dc2d92f 308
sayzyas 9:a4cc7dc2d92f 309
sayzyas 9:a4cc7dc2d92f 310
sayzyas 9:a4cc7dc2d92f 311 #define SLOWDOWN_DISTANCE 23 // <--10 2016.06.01
sayzyas 9:a4cc7dc2d92f 312 #define SLOWDOWN_NEAR_DISTANCE 3
sayzyas 9:a4cc7dc2d92f 313 /*
sayzyas 9:a4cc7dc2d92f 314 typedef struct {
sayzyas 9:a4cc7dc2d92f 315 int16_t dt_WinchCntPosition; // Current winch posittion
sayzyas 9:a4cc7dc2d92f 316 int16_t dt_WinchRtvValue; // Winch Moving distance
sayzyas 9:a4cc7dc2d92f 317 int16_t dt_WinchDstPosition; // Destination Position
sayzyas 9:a4cc7dc2d92f 318 char operation;
sayzyas 9:a4cc7dc2d92f 319 int8_t dt_WinchMotorCurrent; // Winch motor current
sayzyas 9:a4cc7dc2d92f 320 } winchData_t;
sayzyas 9:a4cc7dc2d92f 321 */
sayzyas 9:a4cc7dc2d92f 322
sayzyas 9:a4cc7dc2d92f 323 typedef struct {
sayzyas 9:a4cc7dc2d92f 324 int16_t dt_WinchCntPosition; // Current winch posittion
sayzyas 9:a4cc7dc2d92f 325 int16_t dt_WinchRtvValue; // Winch Moving distance
sayzyas 9:a4cc7dc2d92f 326 int16_t dt_WinchDstPosition; // Destination Position
sayzyas 9:a4cc7dc2d92f 327 uint8_t operation;
sayzyas 9:a4cc7dc2d92f 328 uint8_t dt_WinchMotor1Current; // Winch motor 1 current
sayzyas 9:a4cc7dc2d92f 329 uint8_t dt_WinchMotor2Current; // Winch motor 2 current
sayzyas 9:a4cc7dc2d92f 330 uint8_t res;
sayzyas 9:a4cc7dc2d92f 331 } winchData_t;
sayzyas 9:a4cc7dc2d92f 332
sayzyas 9:a4cc7dc2d92f 333
sayzyas 9:a4cc7dc2d92f 334 #define ROTATE_PER_RESOLUTION 24
sayzyas 9:a4cc7dc2d92f 335
sayzyas 9:a4cc7dc2d92f 336 #define __READ_CURRENT_AT_CIF_TASK__
sayzyas 9:a4cc7dc2d92f 337
sayzyas 9:a4cc7dc2d92f 338 //mv_WinchMvData