Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
LTA_mcu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Александр Пчелин
LTA_mcu
Commits
bd4e445b
Commit
bd4e445b
authored
May 04, 2026
by
Андрей Пивторак
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
добавил комментарии для правок
parent
8df5e7e1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
32 additions
and
3 deletions
+32
-3
cli protocol 1.1.md
cli protocol 1.1.md
+3
-2
src/cli_protocol/cli_protocol.c
src/cli_protocol/cli_protocol.c
+6
-1
src/cli_protocol/cli_protocol.h
src/cli_protocol/cli_protocol.h
+23
-0
No files found.
cli protocol 1.1.md
View file @
bd4e445b
...
@@ -127,7 +127,7 @@ T15 – запись памяти
...
@@ -127,7 +127,7 @@ T15 – запись памяти
### 4. API библиотеки для ПК
### 4. API библиотеки для ПК
`
`
``
class CLIProtocol:
class CLIProtocol:
def __init__(self, port: str, baudrate: int = 115200):
def __init__(self, port: str, baudrate: int = 115200):
"""Инициализация"""
"""Инициализация"""
...
@@ -179,4 +179,5 @@ class CLIProtocol:
...
@@ -179,4 +179,5 @@ class CLIProtocol:
def write_memory(self, addr: int, data: bytes) -> bool:
def write_memory(self, addr: int, data: bytes) -> bool:
"""Запись памяти (T15)"""
"""Запись памяти (T15)"""
pass
pass
`
```
\ No newline at end of file
src/cli_protocol/cli_protocol.c
View file @
bd4e445b
...
@@ -26,8 +26,10 @@
...
@@ -26,8 +26,10 @@
#include <string.h>
#include <string.h>
#include <stdio.h>
#include <stdio.h>
// todo - убрать зависимость от МК
// Включаем заголовок для доступа к регистрам USART (только для ожидания TC)
// Включаем заголовок для доступа к регистрам USART (только для ожидания TC)
#include "gd32f4xx_usart.h"
// #include "gd32f4xx_usart.h"
//************************************ Локальные константы **************************************************
//************************************ Локальные константы **************************************************
#define CLI_CMD_PREFIX 'T' // Префикс команды
#define CLI_CMD_PREFIX 'T' // Префикс команды
...
@@ -119,8 +121,11 @@ void cli_send_string(const char* str)
...
@@ -119,8 +121,11 @@ void cli_send_string(const char* str)
}
}
// Ждём завершения передачи, чтобы не смешивать вывод
// Ждём завершения передачи, чтобы не смешивать вывод
uart_wait_tx_done
();
uart_wait_tx_done
();
//! TODO - МОЖНО БЫЛО ИСПОЛЬЗОВАТЬ lmcal_uart_get_status()
}
}
//-----------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------
// Ожидание завершения передачи UART (флаг TC)
// Ожидание завершения передачи UART (флаг TC)
// Используем прямой доступ к регистрам, т.к. LMCAL не предоставляет такой функции.
// Используем прямой доступ к регистрам, т.к. LMCAL не предоставляет такой функции.
...
...
src/cli_protocol/cli_protocol.h
View file @
bd4e445b
...
@@ -42,6 +42,10 @@ typedef struct {
...
@@ -42,6 +42,10 @@ typedef struct {
typedef
void
(
*
cli_cmd_handler_t
)(
const
u8
*
data
,
u8
len
);
typedef
void
(
*
cli_cmd_handler_t
)(
const
u8
*
data
,
u8
len
);
//************************************ Структура регистрируемой команды **************************************
//************************************ Структура регистрируемой команды **************************************
// TODO - че, прям реально от 0x00–0xFF, а как же встроенные команды?
//! @brief Структура для регистрации пользовательской команды
//! @brief Структура для регистрации пользовательской команды
typedef
struct
{
typedef
struct
{
u8
code
;
// Код команды (0x00–0xFF)
u8
code
;
// Код команды (0x00–0xFF)
...
@@ -64,11 +68,17 @@ fun_res_t cli_protocol_deinit(void);
...
@@ -64,11 +68,17 @@ fun_res_t cli_protocol_deinit(void);
//! @brief Основной цикл обработки (вызывать в главном цикле программы)
//! @brief Основной цикл обработки (вызывать в главном цикле программы)
void
cli_protocol_process
(
void
);
void
cli_protocol_process
(
void
);
// TODO - сделать с параметром - блок\ не блок
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Отправка строки через UART (с ожиданием завершения передачи)
//! @brief Отправка строки через UART (с ожиданием завершения передачи)
//! @param str Указатель на нуль-терминированную строку
//! @param str Указатель на нуль-терминированную строку
void
cli_send_string
(
const
char
*
str
);
void
cli_send_string
(
const
char
*
str
);
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Установка информации об устройстве
//! @brief Установка информации об устройстве
//! @param name Имя устройства (до 31 символа)
//! @param name Имя устройства (до 31 символа)
...
@@ -78,23 +88,33 @@ void cli_send_string(const char* str);
...
@@ -78,23 +88,33 @@ void cli_send_string(const char* str);
//! @return ERR_OK при успехе
//! @return ERR_OK при успехе
fun_res_t
cli_protocol_set_device_info
(
const
char
*
name
,
const
char
*
serial
,
const
char
*
ver
,
u8
board_id
);
fun_res_t
cli_protocol_set_device_info
(
const
char
*
name
,
const
char
*
serial
,
const
char
*
ver
,
u8
board_id
);
// todo - а зачем
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Установка board_id устройства
//! @brief Установка board_id устройства
//! @param board_id Идентификатор платы (0–254)
//! @param board_id Идентификатор платы (0–254)
//! @return ERR_OK при успехе
//! @return ERR_OK при успехе
fun_res_t
cli_protocol_set_board_id
(
u8
board_id
);
fun_res_t
cli_protocol_set_board_id
(
u8
board_id
);
// todo - а зачем
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Получение текущего board_id устройства
//! @brief Получение текущего board_id устройства
//! @return Идентификатор платы
//! @return Идентификатор платы
u8
cli_protocol_get_board_id
(
void
);
u8
cli_protocol_get_board_id
(
void
);
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Установка пароля для открытия соединения
//! @brief Установка пароля для открытия соединения
//! @param pass Указатель на массив байт пароля (до 15 байт)
//! @param pass Указатель на массив байт пароля (до 15 байт)
//! @param len Длина пароля в байтах
//! @param len Длина пароля в байтах
void
cli_protocol_set_password
(
const
u8
*
pass
,
u8
len
);
void
cli_protocol_set_password
(
const
u8
*
pass
,
u8
len
);
// todo - а зачем
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Проверка пароля
//! @brief Проверка пароля
//! @param pass Указатель на массив байт пароля
//! @param pass Указатель на массив байт пароля
...
@@ -102,6 +122,9 @@ void cli_protocol_set_password(const u8* pass, u8 len);
...
@@ -102,6 +122,9 @@ void cli_protocol_set_password(const u8* pass, u8 len);
//! @return true – пароль верен, false – неверен
//! @return true – пароль верен, false – неверен
bool
cli_protocol_verify_password
(
const
u8
*
pass
,
u8
len
);
bool
cli_protocol_verify_password
(
const
u8
*
pass
,
u8
len
);
// todo - а где реализация: cli_protocol_reset_block
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//! @brief Сброс блокировки после превышения попыток ввода пароля
//! @brief Сброс блокировки после превышения попыток ввода пароля
void
cli_protocol_reset_block
(
void
);
void
cli_protocol_reset_block
(
void
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment