Слияние кода из проекта для ПЛК с этим проектом

This commit is contained in:
VladislavOstapov 2022-12-05 13:20:29 +03:00
parent 71851c7bc8
commit 622f2eef26
2 changed files with 27 additions and 27 deletions

View File

@ -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
View File

@ -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