2018.07.26
Dependencies: EthernetInterface TextLCD USBDevice USBHost mbed
common.h
- Committer:
- sayzyas
- Date:
- 2018-07-26
- Revision:
- 1:fdf87a1a724b
- Parent:
- 0:19075177391c
File content as of revision 1:fdf87a1a724b:
/* DEBUG PRINT MACRO http://qiita.com/saltheads/items/e1b0ab54d3d6029c9593 http://tricky-code.net/nicecode/code10.php */ /* Information */ #define LatestUpDate "2017.04.27" #define ProgramRevision "Rev 1.00" #define Author "zNSR" #define Company "Revast Co.,Ltd." // ====================================================================== // For Debugging // ====================================================================== //#define __DEBUG_PRINT_SW__ // Display SW Status to console #define __DEBUG_L0__ //#define __DEBUG_L1__ //#define __DEBUG_L2__ #define __DEBUG_L3__ //#define __DEBUG_L4__ //#define __DEBUG_L5__ #define __DEBUG_WINCH_DATA__ #ifdef __DEBUG_WINCH_DATA__ #define DEBUG_PRINT_WINCH_DATA(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_WINCH_DATA(...) #endif #ifdef __DEBUG_PRINT_SW__ #define DEBUG_PRINT_SW(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_SW(...) #endif #ifdef __DEBUG_L0__ #define DEBUG_PRINT_L0(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_L0(...) #endif #ifdef __DEBUG_L1__ #define DEBUG_PRINT_L1(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_L1(...) #endif #ifdef __DEBUG_L2__ #define DEBUG_PRINT_L2(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_L2(...) #endif #ifdef __DEBUG_L3__ #define DEBUG_PRINT_L3(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_L3(...) #endif #ifdef __DEBUG_L4__ #define DEBUG_PRINT_L4(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_L4(...) #endif #ifdef __DEBUG_L5__ #define DEBUG_PRINT_L5(...) pc.printf(__VA_ARGS__) #else #define DEBUG_PRINT_L5(...) #endif /* ********************************************* */ /* Platform definition */ /* ********************************************* */ #define PLATFORM "B1Demo" //#define PLATFORM "B2Demo" /* ********************************************* */ // Motor Controller RoboCAN ID definition // --> define at "mtrAccess.cpp" //#define NUMBER_OF_MCCMD 7 #define WINCH_OFFSET_VALUE 20 enum{ MOTOR_NO0, MOTOR_NO1, MOTOR_NO2, MOTOR_NO3 }; enum{ MOTOR_FORWARD, MOTOR_REVERSE, MOTOR_STOP }; #define MC_LOCK_COUNT 5 /* ********************************************* */ #define MOTOR_1 '1' #define MOTOR_2 '2' #define MOTOR_ /* Above is still under construction ..... */ #define __DISP_GAMAPAD_STATUS_ALL__ #define __DISP_WRITE_VALUE__ #define I2C_ADDRESS_RESOLVER 0x02 #define _OK_ 1 #define _NG_ 0 #define _FAIL_ 0 #define ON 1 #define OFF 0 #define LFS_READ_COUNT 3 #define TARGET_CHECK_COUNT 10 //#define __DSP_MOTOR_CURRENT_ /* Usually this should be comment out */ //#define _COMMUNCATE_PC_BY_SERIAL_ // Should validate this definition when you use DHCP. //#define __ETERNET_DHCP__ #define NumberOfPcCommand 11 enum{ MOTOR_RFCRW, // RF crawler MOTOR_LBCRW, // LB crawler MOTOR_RFTFM, // RF Transform MOTOR_LBTFM, // LB transform MOTOR_WINCH, // Winch MOTOR_CMPAN, // Pan/Tilt MOTOR_CTILT }; enum{ MOTOR_DIR_FWD, // Motor forwaed rotation MOTOR_DIR_RVS, // Motor reverse rotation MOTOR_DIR_STP // Motor stop }; /* I2C Command packet to motor controller */ /* For motor controller */ #define NumberOfI2CCommand 12 enum{ I2C_CP_COMMAND, // instruction command I2C_CP_MOTORNO, // motor number I2C_CP_M_DIR, // motor rotation direction I2C_CP_M_CNTTH_U, // motor current limit detection threshold upper byte I2C_CP_M_CNTTH_L, // motor current limit detection threshold lower byte I2C_CP_WDRAM_DIA_UPPER, // winch dram motor diameter upper I2C_CP_WDRAM_DIA_LOWER, // winch dram motor diameter lower I2C_CP_CCABLE_DIA_UPPER, // cable diameter upper byte I2C_CP_CCABLE_DIA_LOWER, // cable diameter lower byte I2C_CP_RESOLVER_RESO, // resolver resolution (bit) I2C_CP_PRESET_CPOS_UPPER, // preset position upper I2C_CP_PRESET_CPOS_LOWER // preset position lower }; /* Winch Operating mode */ enum{ WINCH_POSITION_CLEAR, WINCH_PRESET_BASEDATA, WINCH_MMODE_RELATIVE, WINCH_MMODE_ABSOLUTE, WINCH_STEPDOWN_BTN_ON, WINCH_STEPDOWN_BTN_OFF, WINCH_STEPUP_BTN_ON, WINCH_STEPUP_BTN_OFF, WINCH_U_STEPDOWN_BTN_ON, WINCH_U_STEPDOWN_BTN_OFF, WINCH_U_STEPUP_BTN_ON, WINCH_U_STEPUP_BTN_OFF, WINCH_PRESET_POSITION }; /* Ether net */ #define TCP_PCCSERVER_PORT 10004 #define TCP_CMDSERVER_PORT 10002 #define UDP_SERVER_PORT 10000 #define MOTOR_FWD 'F' /* Forward Rotation */ #define MOTOR_RVS 'R' /* Reverse Rotation */ #define MOTOR_STP 'S' /* Stop */ // ========================================================= // Setting Values // ========================================================= typedef struct { int8_t sv_JS_ShapeMode; // JS Shape: 0=I, 1=KO int8_t sv_JS_OpeMode; // JS Operation: 0=single, 1=dual int8_t sv_WinchValid; // Winch function valid or not: 0=Tfm, Crawler valid, 1=Winch valid int8_t res; } basic_operation_t; typedef struct { uint16_t rf_mtr_ithd_f; // 2 Current threshold RF motor ( forward ) uint16_t rf_mtr_ithd_r; // 2 Current threshold RF motor ( reverse ) uint16_t lb_mtr_ithd_f; // 2 Current threshold LB motor ( forward ) uint16_t lb_mtr_ithd_r; // 2 Current threshold LB motor ( reverse ) uint8_t rf_mtr_hspd_f; // 1 Motor speed RF ( forward ) uint8_t rf_mtr_hspd_r; // 1 Motor speed RF ( reverse ) uint8_t lb_mtr_hspd_f; // 1 Motor speed LB ( forward ) uint8_t lb_mtr_hspd_r; // 1 Motor speed LB ( reverse ) uint8_t reserved_1; // 1 reserved for future use uint8_t reserved_2; // 1 reserved for future use uint8_t reserved_3; // 1 reserved for future use uint8_t reserved_4; // 1 reserved for future use } crawler_SetValue_t; // << 16 byte >> typedef struct { uint16_t rf_mtr_ithd_f; // 2 Current threshold RF motor ( forward ) uint16_t rf_mtr_ithd_r; // 2 Current threshold RF motor ( reverse ) uint16_t lb_mtr_ithd_f; // 2 Current threshold LB motor ( forward ) uint16_t lb_mtr_ithd_r; // 2 Current threshold LB motor ( reverse ) uint8_t rf_mtr_hspd_f; // 1 Motor speed RF ( forward ) uint8_t rf_mtr_hspd_r; // 1 Motor speed RF ( reverse ) uint8_t lb_mtr_hspd_f; // 1 Motor speed LB ( forward ) uint8_t lb_mtr_hspd_r; // 1 Motor speed LB ( reverse ) uint8_t reserved_1; // 1 reserved for future use uint8_t reserved_2; // 1 reserved for future use uint8_t reserved_3; // 1 reserved for future use uint8_t reserved_4; // 1 reserved for future use } tfm_SetValue_t; // << 16 byte >> typedef struct { uint16_t pan_mtr_ithd_f; // 2 Current threshold winch dram Motor ( forward ) uint16_t pan_mtr_ithd_r; // 2 Current threshold winch dram Motor ( reverse ) uint16_t tlt_mtr_ithd_f; // 2 Current threshold winch No2 Motor ( forward ) uint16_t tlt_mtr_ithd_r; // 2 Current threshold winch No2 Motor ( reverse ) uint8_t pan_mtr_hspd_f; // 1 Motor speed winch dram motor high speed ( forward ) uint8_t pan_mtr_hspd_r; // 1 Motor speed winch dram motor high speed ( reverse ) uint8_t tlt_mtr_hspd_f; // 1 Motor speed winch No2 motor high speed ( forward ) uint8_t tlt_mtr_hspd_r; // 1 Motor speed winch No2 motor high speed ( reverse ) uint8_t reserved_1; // 1 reserved for future use uint8_t reserved_2; // 1 reserved for future use uint8_t reserved_3; // 1 reserved for future use uint8_t reserved_4; // 1 reserved for future use } ptl_SetValue_t; // << 24 byte >> typedef struct { uint16_t drm_mtr_ithd_f; // 2 Current threshold winch dram Motor ( forward ) uint16_t drm_mtr_ithd_r; // 2 Current threshold winch dram Motor ( reverse ) uint16_t no2_mtr_ithd_f; // 2 Current threshold winch No2 Motor ( forward ) uint16_t no2_mtr_ithd_r; // 2 Current threshold winch No2 Motor ( reverse ) uint8_t drm_mtr_hspd_f; // 1 Motor speed winch dram motor high speed ( forward ) uint8_t drm_mtr_hspd_r; // 1 Motor speed winch dram motor high speed ( reverse ) uint8_t no2_mtr_hspd_f; // 1 Motor speed winch No2 motor high speed ( forward ) uint8_t no2_mtr_hspd_r; // 1 Motor speed winch No2 motor high speed ( reverse ) uint16_t dram_dmtr_x100; // 2 Winch dram diameter x 100 uint16_t adj_val_x10000; // 2 Winch adjust value x 100 uint8_t res_resolution; // 1 Winch resolver resolution (bit) uint8_t reserved_1; // 1 reserved for future use uint8_t reserved_2; // 1 reserved for future use uint8_t reserved_3; // 1 reserved for future use uint8_t reserved_4; // 1 reserved for future use uint8_t reserved_5; // 1 reserved for future use uint8_t reserved_6; // 1 reserved for future use uint8_t reserved_7; // 1 reserved for future use } wch_SetValue_t; // << 24 byte >> typedef struct { uint8_t rjs_centervalue; // 1 R JoyStick center value uint8_t rjs_u_dead_zone; // 1 R Joystick upper dead zone width uint8_t rjs_l_dead_zone; // 1 R Joystick lower dead zone width uint8_t ljs_centervalue; // 1 L JoyStick center value uint8_t ljs_u_dead_zone; // 1 L Joystick upper dead zone width uint8_t ljs_l_dead_zone; // 1 L Joystick lower dead zone width uint8_t reserved_1; // 1 reserved for future use uint8_t reserved_2; // 1 reserved for future use } js_SetValue_t; // << 8 byte >> typedef struct SetValue { crawler_SetValue_t crwCtrl; tfm_SetValue_t tfmCtrl; ptl_SetValue_t ptlCtrl; wch_SetValue_t wchCtrl; } setValue_t; #define SLOWDOWN_DISTANCE 23 // <--10 2016.06.01 #define SLOWDOWN_NEAR_DISTANCE 3 /* typedef struct { int16_t dt_WinchCntPosition; // Current winch posittion int16_t dt_WinchRtvValue; // Winch Moving distance int16_t dt_WinchDstPosition; // Destination Position char operation; int8_t dt_WinchMotorCurrent; // Winch motor current } winchData_t; */ typedef struct { int16_t dt_WinchCntPosition; // Current winch posittion int16_t dt_WinchRtvValue; // Winch Moving distance int16_t dt_WinchDstPosition; // Destination Position uint8_t operation; uint8_t dt_WinchMotor1Current; // Winch motor 1 current uint8_t dt_WinchMotor2Current; // Winch motor 2 current uint8_t res; } winchData_t; #define ROTATE_PER_RESOLUTION 24 #define __READ_CURRENT_AT_CIF_TASK__ //mv_WinchMvData