Слияние кода из проекта для ПЛК с этим проектом
This commit is contained in:
parent
71851c7bc8
commit
622f2eef26
@ -44,10 +44,6 @@ extern char button_unload_remove;
|
||||
|
||||
// Переменные, которые надо добавить в C Global variables
|
||||
|
||||
// код для роботов
|
||||
extern struct robot_code robot1_code;
|
||||
extern struct robot_code robot2_code;
|
||||
|
||||
|
||||
// lock-зоны, нельзя двигаться за них и за робота
|
||||
extern short robot1_lock_zone;
|
||||
|
50
utils.h
50
utils.h
@ -128,6 +128,29 @@ struct robot_regs {
|
||||
union robot_regs_dz dz;
|
||||
};
|
||||
|
||||
// NOTE первой командой на любую транзакцию должна стоять команда опустить траверсу (в 22 зоне по идее никогда не закончим)
|
||||
struct robot_code {
|
||||
short barrel_id; // нужен ID барабана, если
|
||||
short PC; // когда -1, код не выполняется
|
||||
|
||||
/*
|
||||
* система команд, которая нужна: (квадратные скобки - аргумент это младшие 14 бит)
|
||||
* 0 (смещение: да () ? нет): установить смещение (да - встанет в смещенную позицию, нет - в точную)
|
||||
* 1 (опция с барабаном) [поднять (1) | опустить]: поднять/опустить траверсу (перед поднятием ожидать если таймер барабана не истек)
|
||||
* 2 (опция с барабаном) [зона]: съебаться в зону
|
||||
* 3 [сек]: пауза на нужное количество секунд
|
||||
* 4 [время]: установить таймер барабану
|
||||
* 5 (ETCH(1) | GAL (2)) [зона]: установить зону блокировки, умеет использовать автоинкримент зоны гальваники или обезжиривания
|
||||
* 6 [X(1) | Y(2)]: скорректировать ось
|
||||
* 15: конец
|
||||
*
|
||||
* формат команды: (команда, старший байт) [младший байт, аргумент команды (если есть)] [слово, аргумент если команда требует]
|
||||
*/
|
||||
short code[16]; // формат кода: [команды] <команда 0>
|
||||
|
||||
};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@ -136,10 +159,14 @@ extern "C" {
|
||||
extern struct barrel barrels[BARRELS_COUNT];
|
||||
extern struct robot_regs robot1;
|
||||
extern struct robot_regs robot2;
|
||||
extern struct robot_code robot1_code;
|
||||
extern struct robot_code robot2_code;
|
||||
#else
|
||||
#define barrels ((struct barrel*)&barrels_array)
|
||||
#define robot1 (*((struct robot_regs*)&robot1_reg_dx))
|
||||
#define robot2 (*((struct robot_regs*)&robot2_reg_dz))
|
||||
#define robot1_code (*((struct robot_code*)&_robot1_code_struct))
|
||||
#define robot2_code (*((struct robot_code*)&_robot2_code_struct))
|
||||
#endif
|
||||
|
||||
// почему-то компилер говорит что размер структуру сраный
|
||||
@ -198,29 +225,6 @@ extern struct robot_regs robot2;
|
||||
#define ROBOT_CMD_INC_ZONE(arg) ((ROBOT_CMD_INC_ZONE_code) | (short)(arg))
|
||||
|
||||
|
||||
// NOTE первой командой на любую транзакцию должна стоять команда опустить траверсу (в 22 зоне по идее никогда не закончим)
|
||||
struct robot_code {
|
||||
short barrel_id; // нужен ID барабана, если
|
||||
short PC; // когда -1, код не выполняется
|
||||
|
||||
/*
|
||||
* система команд, которая нужна: (квадратные скобки - аргумент это младшие 14 бит)
|
||||
* 0 (смещение: да () ? нет): установить смещение (да - встанет в смещенную позицию, нет - в точную)
|
||||
* 1 (опция с барабаном) [поднять (1) | опустить]: поднять/опустить траверсу (перед поднятием ожидать если таймер барабана не истек)
|
||||
* 2 (опция с барабаном) [зона]: съебаться в зону
|
||||
* 3 [сек]: пауза на нужное количество секунд
|
||||
* 4 [время]: установить таймер барабану
|
||||
* 5 (ETCH(1) | GAL (2)) [зона]: установить зону блокировки, умеет использовать автоинкримент зоны гальваники или обезжиривания
|
||||
* 6 [X(1) | Y(2)]: скорректировать ось
|
||||
* 15: конец
|
||||
*
|
||||
* формат команды: (команда, старший байт) [младший байт, аргумент команды (если есть)] [слово, аргумент если команда требует]
|
||||
*/
|
||||
short code[16]; // формат кода: [команды] <команда 0>
|
||||
|
||||
};
|
||||
|
||||
|
||||
/* ======================== IO DEFS ======================== */
|
||||
|
||||
#define ROBOT1_X 1
|
||||
|
Reference in New Issue
Block a user