Слияние кода из проекта для ПЛК с этим проектом
This commit is contained in:
parent
71851c7bc8
commit
622f2eef26
@ -44,10 +44,6 @@ extern char button_unload_remove;
|
|||||||
|
|
||||||
// Переменные, которые надо добавить в C Global variables
|
// Переменные, которые надо добавить в C Global variables
|
||||||
|
|
||||||
// код для роботов
|
|
||||||
extern struct robot_code robot1_code;
|
|
||||||
extern struct robot_code robot2_code;
|
|
||||||
|
|
||||||
|
|
||||||
// lock-зоны, нельзя двигаться за них и за робота
|
// lock-зоны, нельзя двигаться за них и за робота
|
||||||
extern short robot1_lock_zone;
|
extern short robot1_lock_zone;
|
||||||
|
50
utils.h
50
utils.h
@ -128,6 +128,29 @@ struct robot_regs {
|
|||||||
union robot_regs_dz dz;
|
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
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@ -136,10 +159,14 @@ extern "C" {
|
|||||||
extern struct barrel barrels[BARRELS_COUNT];
|
extern struct barrel barrels[BARRELS_COUNT];
|
||||||
extern struct robot_regs robot1;
|
extern struct robot_regs robot1;
|
||||||
extern struct robot_regs robot2;
|
extern struct robot_regs robot2;
|
||||||
|
extern struct robot_code robot1_code;
|
||||||
|
extern struct robot_code robot2_code;
|
||||||
#else
|
#else
|
||||||
#define barrels ((struct barrel*)&barrels_array)
|
#define barrels ((struct barrel*)&barrels_array)
|
||||||
#define robot1 (*((struct robot_regs*)&robot1_reg_dx))
|
#define robot1 (*((struct robot_regs*)&robot1_reg_dx))
|
||||||
#define robot2 (*((struct robot_regs*)&robot2_reg_dz))
|
#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
|
#endif
|
||||||
|
|
||||||
// почему-то компилер говорит что размер структуру сраный
|
// почему-то компилер говорит что размер структуру сраный
|
||||||
@ -198,29 +225,6 @@ extern struct robot_regs robot2;
|
|||||||
#define ROBOT_CMD_INC_ZONE(arg) ((ROBOT_CMD_INC_ZONE_code) | (short)(arg))
|
#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 ======================== */
|
/* ======================== IO DEFS ======================== */
|
||||||
|
|
||||||
#define ROBOT1_X 1
|
#define ROBOT1_X 1
|
||||||
|
Reference in New Issue
Block a user