<commit_before>//***********МЕЖКОНТРОЛЛЕРНАЯ ШИНА I2C - РАЗМЕРЫ ПАКЕТОВ, РАЗМЕРЫ И ПОЗИЦИИ ПЕРЕМЕННЫХ ***********// 

// Частота замыкания аппарата

#define SYSTEM_CLOCK_FREQUENCY 50

//  цена деления АЦП в миллиметрах

#define DEPTH_SCALE 15 // 15 мм на 1 деление АЦП из 1024, диапазон
#define DEPTH_SCALE_ADC 3.75 //3/75 мм на деление 14-разрядного внешнего АЦП

//------------I2C PACKET DATA OFFSETS-------------
// TO VERVMA DATA OFFSETS
#define TO_VER_Z_SPEED_OFFSET 0 //это значит, что в пакете, отправляемом на контроллер вертикальных вма, в ячейке toVerVmaPacket[0] находится управление по вертикальной скорости

#define TO_VER_FEEDBACK_PITCH_HIGH 1
#define TO_VER_FEEDBACK_PITCH_LOW 2

#define TO_VER_FEEDBACK_PITCH_SPEED_HIGH 3
#define TO_VER_FEEDBACK_PITCH_SPEED_LOW 4

#define TO_VER_FEEDBACK_ROLL_HIGH 5
#define TO_VER_FEEDBACK_ROLL_LOW 6

#define TO_VER_FEEDBACK_ROLL_SPEED_HIGH 7
#define TO_VER_FEEDBACK_ROLL_SPEED_LOW 8

#define TO_VER_COMPLEX_DEPTH_HIGH 9
#define TO_VER_COMPLEX_DEPTH_LOW 10
#define TO_VER_COMPLEX_DEPTH_SPEED_HIGH 11
#define TO_VER_COMPLEX_DEPTH_SPEED_LOW 12

#define TO_VER_SAU_BYTE 13

#define TO_VER_DEPTH_SHIFT 14

#define TO_VERVMA_DATA_SIZE 15

// TO HORVMA DATA OFFSETS
#define TO_HOR_X_SPEED_OFFSET 0
#define TO_HOR_Y_SPEED_OFFSET 1
#define TO_HOR_YAW_SPEED_OFFSET 2

#define TO_HOR_FEEDBACK_YAW_HIGH 3
#define TO_HOR_FEEDBACK_YAW_LOW 4
#define TO_HOR_FEEDBACK_YAW_SPEED_HIGH 5
#define TO_HOR_FEEDBACK_YAW_SPEED_LOW 6

#define TO_HOR_SAU_BYTE	7

#define TO_HORVMA_DATA_SIZE 8

// TO SERVOCONT DATA OFFSETS
#define TO_SERV_LIGHT_OFFSET 0
#define TO_SERV_CAM_OFFSET 1
#define TO_SERV_GRAB_OFFSET 2

#define TO_SERV_SHOULDER_OFFSET 3
#define TO_SERV_ELBOW_OFFSET 4
#define TO_SERV_WRIST_OFFSET 5

//#define TO_SERV_PUMP_OFFSET 6

 #define TO_SERV_ROT_TOOL_LEFT 6
 #define TO_SERV_ROT_TOOL_RIGHT 7

#define TO_SERVOCONT_DATA_SIZE 8

// TO DEPTH DATA OFFSETS
#define TO_DEPTH_ACCEL_OFFSET 0
#define TO_DEPTH_SENSOR_DATA_SIZE 1

//-------I2C FEEDBACK DATA OFFSETS
//Расположение данных в пакетах обратной связи, идущих от слейвов на мастер

#define FROM_DEPTH_HIGH 0
#define FROM_DEPTH_LOW 1
#define FROM_DEPTH_SPEED_HIGH 2
#define FROM_DEPTH_SPEED_LOW 3

#define FROM_DEPTH_SENSOR_DATA_SIZE 4

//расположение данных с контроллера горизонталки и общий размер пакета с нее
#define F_HOR_HLF_CURRENT_OFFSET 0
#define F_HOR_HLB_CURRENT_OFFSET 1
#define F_HOR_HRB_CURRENT_OFFSET 2
#define F_HOR_HRF_CURRENT_OFFSET 3
#define F_HOR_HLF_FORCE_OFFSET 4
#define F_HOR_HLB_FORCE_OFFSET 5
#define F_HOR_HRB_FORCE_OFFSET 6
#define F_HOR_HRF_FORCE_OFFSET 7
#define F_HOR_FLAGS_OFFSET 8

#define FROM_HORVMA_DATA_SIZE 9

//расположение данных с контроллера вертикалки и общий размер пакета с нее
#define F_VER_VLF_CURRENT_OFFSET 0
#define F_VER_VLB_CURRENT_OFFSET 1
#define F_VER_VRB_CURRENT_OFFSET 2
#define F_VER_VRF_CURRENT_OFFSET 3
#define F_VER_VLF_FORCE_OFFSET 4
#define F_VER_VLB_FORCE_OFFSET 5
#define F_VER_VRB_FORCE_OFFSET 6
#define F_VER_VRF_FORCE_OFFSET 7
#define F_VER_FLAGS_OFFSET 8

#define FROM_VERVMA_DATA_SIZE 9


//===============================================
#define FROM_SERVOCONT_CURRENTS_OFFSET 0
#define FROM_SERVOCONT_FLAGS_OFFSET 1
#define FROM_SERVOCONT_DATA_SIZE 2

//------- VARIABLES POSITIONS IN THE DATA ARRAYS ----------
// массив moveArray[] содержит данные об управлении движением аппарата с джойстика
// В него входят 4 переменные: move_array[0] - скорость по маршу, move[1] - скорость по лагу, move[2] - скорость по углу курса, move[3] - скорость по глубине
// Аналогично строятся другие массивы данных.
#define MOVE_ARRAY_SIZE 4

#define REG_X_SPEED 0 // позиция переменной в массиве
#define REG_Y_SPEED 1
#define REG_YAW_SPEED 2
#define REG_DEPTH_SPEED 3
//-----------------------
//Массив camservArray[] содержит данные об управлении поворотом камер
#define CAMSERV_ARRAY_SIZE 2

#define REG_CAM1_SERV 0
#define REG_CAM2_SERV 1
//----------------------
//Массив toolsServArray[] содержит данные об управлении поворотом камер
#define TOOLSSERV_ARRAY_SIZE 2

#define REG_TOOL1_SERV 0
#define REG_TOOL2_SERV 1
//----------------------
//Массив manArray[] содержит данные об управлении манипулятором
#define MAN_ARRAY_SIZE 4

#define REG_GRAB 0
#define REG_JOINT1 1
#define REG_JOINT2 2
#define REG_SHOULDER 3<commit_msg>replaced most  #defines with enums<commit_after>//***********МЕЖКОНТРОЛЛЕРНАЯ ШИНА I2C - РАЗМЕРЫ ПАКЕТОВ, РАЗМЕРЫ И ПОЗИЦИИ ПЕРЕМЕННЫХ ***********// 

// Частота замыкания аппарата

#define SYSTEM_CLOCK_FREQUENCY 50

//  цена деления АЦП в миллиметрах

#define DEPTH_SCALE 15 // 15 мм на 1 деление АЦП из 1024, диапазон
#define DEPTH_SCALE_ADC 3.75 //3/75 мм на деление 14-разрядного внешнего АЦП

//------------I2C OUTPUT PACKET DATA OFFSETS-------------
// То есть организация данных, передаваемых от мастера (Connection Controller) ко всем слейвам
// TO VERVMA DATA OFFSETS
enum {
 TO_VER_Z_SPEED_OFFSET, //это значит, что в пакете, отправляемом на контроллер вертикальных вма, в ячейке toVerVmaPacket[0] находится управление по вертикальной скорости

 TO_VER_FEEDBACK_PITCH_HIGH,
 TO_VER_FEEDBACK_PITCH_LOW,

 TO_VER_FEEDBACK_PITCH_SPEED_HIGH,
 TO_VER_FEEDBACK_PITCH_SPEED_LOW ,

 TO_VER_FEEDBACK_ROLL_HIGH,
 TO_VER_FEEDBACK_ROLL_LOW,

 TO_VER_FEEDBACK_ROLL_SPEED_HIGH,
 TO_VER_FEEDBACK_ROLL_SPEED_LOW,

 TO_VER_COMPLEX_DEPTH_HIGH,
 TO_VER_COMPLEX_DEPTH_LOW,
 TO_VER_COMPLEX_DEPTH_SPEED_HIGH,
 TO_VER_COMPLEX_DEPTH_SPEED_LOW,

 TO_VER_SAU_BYTE,

 TO_VER_DEPTH_SHIFT,

 TO_VERVMA_DATA_SIZE,
};

// TO HORVMA DATA OFFSETS
enum {
 TO_HOR_X_SPEED_OFFSET,
 TO_HOR_Y_SPEED_OFFSET,
 TO_HOR_YAW_SPEED_OFFSET,

 TO_HOR_FEEDBACK_YAW_HIGH,
 TO_HOR_FEEDBACK_YAW_LOW,
 TO_HOR_FEEDBACK_YAW_SPEED_HIGH,
 TO_HOR_FEEDBACK_YAW_SPEED_LOW,

 TO_HOR_SAU_BYTE,

 TO_HORVMA_DATA_SIZE,
};

// TO SERVOCONT DATA OFFSETS
enum {
 TO_SERV_LIGHT_OFFSET,
 TO_SERV_CAM_OFFSET,
 TO_SERV_GRAB_OFFSET,

 TO_SERV_SHOULDER_OFFSET,
 TO_SERV_ELBOW_OFFSET,
 TO_SERV_WRIST_OFFSET,

 TO_SERV_ROT_TOOL_LEFT,
 TO_SERV_ROT_TOOL_RIGHT,

 TO_SERVOCONT_DATA_SIZE,
};

// TO DEPTH DATA OFFSETS
enum {
	TO_DEPTH_ACCEL_OFFSET,
	TO_DEPTH_SENSOR_DATA_SIZE,
};

//-------I2C FEEDBACK DATA OFFSETS
//Расположение данных в пакетах обратной связи, идущих от слейвов на мастер

enum {
	FROM_DEPTH_HIGH,
	FROM_DEPTH_LOW,
	FROM_DEPTH_SPEED_HIGH,
	FROM_DEPTH_SPEED_LOW,

	FROM_DEPTH_SENSOR_DATA_SIZE,
};

//расположение данных с контроллера горизонталки и общий размер пакета с нее
enum {
	F_HOR_HLF_CURRENT_OFFSET,
	F_HOR_HLB_CURRENT_OFFSET,
	F_HOR_HRB_CURRENT_OFFSET,
	F_HOR_HRF_CURRENT_OFFSET,
	F_HOR_HLF_FORCE_OFFSET,
	F_HOR_HLB_FORCE_OFFSET,
	F_HOR_HRB_FORCE_OFFSET,
	F_HOR_HRF_FORCE_OFFSET,
	F_HOR_FLAGS_OFFSET,

	FROM_HORVMA_DATA_SIZE,
};

//расположение данных с контроллера вертикалки и общий размер пакета с нее
enum {
	F_VER_VLF_CURRENT_OFFSET,
	F_VER_VLB_CURRENT_OFFSET,
	F_VER_VRB_CURRENT_OFFSET,
	F_VER_VRF_CURRENT_OFFSET,
	F_VER_VLF_FORCE_OFFSET,
	F_VER_VLB_FORCE_OFFSET,
	F_VER_VRB_FORCE_OFFSET,
	F_VER_VRF_FORCE_OFFSET,
	F_VER_FLAGS_OFFSET,

	FROM_VERVMA_DATA_SIZE,
};


//===============================================
enum {
	FROM_SERVOCONT_CURRENTS_OFFSET,
	FROM_SERVOCONT_FLAGS_OFFSET,
	
	FROM_SERVOCONT_DATA_SIZE,
};

//------- VARIABLES POSITIONS IN THE DATA ARRAYS ----------
// массив moveArray[] содержит данные об управлении движением аппарата с джойстика
// В него входят 4 переменные: move_array[0] - скорость по маршу, move[1] - скорость по лагу, move[2] - скорость по углу курса, move[3] - скорость по глубине
// Аналогично строятся другие массивы данных.


enum {
	REG_X_SPEED = 0, // позиция переменной в массиве
	REG_Y_SPEED,
	REG_YAW_SPEED,
	REG_DEPTH_SPEED,

	MOVE_ARRAY_SIZE,
};
//-----------------------
//Массив camservArray[] содержит данные об управлении поворотом камер

enum {
	REG_CAM1_SERV,
	REG_CAM2_SERV,

	CAMSERV_ARRAY_SIZE,
};

//----------------------
//Массив toolsServArray[] содержит данные об управлении поворотом камер


enum {
	REG_TOOL1_SERV,
	REG_TOOL2_SERV,

	TOOLSSERV_ARRAY_SIZE,
};
//----------------------
//Массив manArray[] содержит данные об управлении манипулятором


enum {
	REG_GRAB,
	REG_JOINT1,
	REG_JOINT2,
	REG_SHOULDER,

	MAN_ARRAY_SIZE,
};
{'fraction_non_alphanumeric': 0.09505096401817512, 'fraction_numerical': 0.019157558639322118, 'mean_word_length': 5.100374531835206, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4436604', 'n_tokens_mistral': 3773, 'n_tokens_neox': 3767, 'n_words': 726}