docs: добавь поясняющие комментарии к модулям и инструментам

This commit is contained in:
2026-10-02 16:45:50 +03:00
parent 6cbce6c360
commit 427fc70100
488 changed files with 2877 additions and 1 deletions

View File

@@ -1,3 +1,6 @@
# Сборка общей библиотеки SETProtocol средствами Android NDK. C-ядро и JNI-обёртки входят в
# один модуль; список исходников должен включать реализации всех native-методов Kotlin.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

View File

@@ -1,3 +1,8 @@
/*
* Kotlin-модель обмена с мостом CAN/RS485. Преобразование wire-кадров делегируется общему
* ядру; пользовательский интерфейс получает типизированные поля, не зависящие от JNI-массивов.
*/
package ru.setcorp.setflash.core
import ru.setcorp.setprotocol.NativeSetProtocol as NativeProtoCan

View File

@@ -1,3 +1,9 @@
/*
* Кадрирование исторического GUI protocol v1. Parser накапливает части входного потока и
* проверяет сообщение до выдачи результата; этот формат следует выбирать по профилю
* соединения, а не только по сигнатуре.
*/
package ru.setcorp.setflash.core
import java.util.zip.CRC32

View File

@@ -1,3 +1,8 @@
/*
* Общий каталог типов сообщений ProtoCAN для Android-клиентов. Числовые коды являются частью
* протокола; подписи служат отображению и не должны использоваться вместо кодов в обмене.
*/
package ru.setcorp.setflash.core
/** Canonical ProtoCAN message-type registry shared by Android protocol clients. */

View File

@@ -1,3 +1,8 @@
/*
* Kotlin-фасад протокола BALZAM/TMS320F2812. Кадрирование и контрольные суммы выполняет
* C99-ядро через NativeSetProtocol; модели Kotlin описывают аргументы и результаты операций.
*/
package ru.setcorp.setflash.core
import ru.setcorp.setprotocol.NativeSetProtocol

View File

@@ -1,3 +1,8 @@
/*
* Kotlin-объявления JNI-вызовов общего SETProtocol. Порядок и типы аргументов должны совпадать
* с setprotocol_jni.c; библиотека должна содержать все объявленные нативные символы.
*/
package ru.setcorp.setprotocol
/** Thin Kotlin facade over the shared C99 SETProtocol core. */

View File

@@ -1,3 +1,8 @@
/*
* Android-представление исторического CAN-протокола BALZAM. Код связывает Kotlin-модели с
* общим ядром; регистры и формат идентификаторов не относятся к протоколу ПМ35.
*/
package ru.setcorp.setprotocol.balsam
import ru.setcorp.setprotocol.NativeSetProtocol

View File

@@ -1,3 +1,9 @@
/*
* Android-модель исторического CAN-терминала и выбора проекта. Каталог определяет семантику
* команд, а транспорт только доставляет CAN-кадры; UI не должен создавать собственную копию
* wire-формата.
*/
package ru.setcorp.setprotocol.legacycan
/** Wire formats implemented by the historical CAN_terminal application. */

View File

@@ -1,3 +1,8 @@
/*
* Android-фасад отдельного протокола ПМ35/TMS320F28335. Запросы и ответы преобразуются через
* общее ядро; профиль периферийного контроллера сохраняется отдельно от TMS320F2812.
*/
package ru.setcorp.setprotocol.periph28335
import ru.setcorp.setprotocol.NativeSetProtocol

View File

@@ -1,3 +1,9 @@
/*
* Android-поддержка наблюдения за объектами GAS через GUI-протокол. Подписка связывает список
* выбранных адресов с поступающими значениями; смена выбора требует согласования состояния
* клиента.
*/
package ru.setcorp.setprotocol.trends
import ru.setcorp.setprotocol.NativeSetProtocol

View File

@@ -1,3 +1,9 @@
/*
* Адаптер общей математики графика из set_plot.c. Область просмотра и координатные
* преобразования рассчитываются ядром; приложение отвечает за единицы, получение измерений и
* отрисовку.
*/
package ru.setcorp.setprotocol.trends
/** Shared C99 plot math, also used by the Python/Qt port. No UI dependency. */

View File

@@ -1,3 +1,8 @@
/*
* Модель области просмотра графика для Android. Границы и преобразования координат связывают
* жесты интерфейса с общей математикой; изменение видимой области не меняет измеренные данные.
*/
package ru.setcorp.setprotocol.trends
/** Normalized top-left viewport; independent of pixels, units, toolkit and samples. */

View File

@@ -1,3 +1,8 @@
/*
* Android-адаптер декодирования источников трендов. Сырые данные интерпретируются по типу
* источника и его параметрам, а результаты передаются модели отображения в числовом виде.
*/
package ru.setcorp.setprotocol.trends
import ru.setcorp.setprotocol.NativeSetProtocol

View File

@@ -1,3 +1,9 @@
/*
* Состояние измерительных маркеров и линеек графика. Маркер относится к координатам
* отображаемого сигнала; его перемещение не изменяет полученные выборки или настройки
* транспорта.
*/
package ru.setcorp.setprotocol.trends
import kotlin.math.abs

View File

@@ -1,3 +1,9 @@
/*
* Модели источников и настроек трендов, используемые клиентскими приложениями. Идентификатор
* сигнала связывает историю с источником независимо от имени и порядка; визуальное
* переименование не должно менять физический источник.
*/
package ru.setcorp.setprotocol.trends
import java.util.UUID

View File

@@ -1,3 +1,9 @@
/*
* Чтение и запись общего JSON-контракта настроек трендов. Стабильные идентификаторы и версия
* формата нужны для обмена настройками между Android и Python; UI-порядок не заменяет
* идентичность сигнала.
*/
package ru.setcorp.setprotocol.trends
import org.json.JSONArray

View File

@@ -1,3 +1,9 @@
/*
* Привязка общего расчёта спектра C99 к клиенту. Входные временные метки задаются в секундах;
* частота дискретизации и нормировка определяются ядром, поэтому отображение не должно
* повторно нормировать амплитуды.
*/
package ru.setcorp.setprotocol.trends
import ru.setcorp.setprotocol.NativeSetProtocol

View File

@@ -1,3 +1,9 @@
/*
* Модель каталога firmware.releases и проверка записей update.json. Метаданные выпуска
* описывают совместимость и расположение образа; выбор записи и последующее скачивание
* являются отдельными операциями.
*/
package ru.setcorp.setprotocol.update
import android.util.Base64

View File

@@ -1,3 +1,9 @@
/*
* Граница JNI между Kotlin и общим C-ядром. Массивы и примитивные значения Java преобразуются
* в аргументы C; полученные через JNI указатели имеют ограниченное время жизни и должны
* освобождаться по правилам JNI.
*/
#include <jni.h>
#include "set_plot.h"

View File

@@ -1,3 +1,9 @@
/*
* Граница JNI между Kotlin и общим C-ядром. Массивы и примитивные значения Java преобразуются
* в аргументы C; полученные через JNI указатели имеют ограниченное время жизни и должны
* освобождаться по правилам JNI.
*/
#include <jni.h>
#include <stdint.h>
#include <stdlib.h>

View File

@@ -1,3 +1,9 @@
/*
* Проверки ProtoCanCatalog: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setflash.core
import org.junit.Assert.assertEquals

View File

@@ -1,3 +1,9 @@
/*
* Проверки TmsTerminalShared: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setflash.core
import org.junit.Assert.*

View File

@@ -1,3 +1,9 @@
/*
* Проверки BalsamCanProtocol: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.balsam
import org.junit.Assert.assertEquals

View File

@@ -1,3 +1,9 @@
/*
* Проверки LegacyCanTerminal: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.legacycan
import org.junit.Assert.assertEquals

View File

@@ -1,3 +1,10 @@
/*
* Проверки Periph28335Protocol: фиксируют ожидаемое поведение на воспроизводимых входных
* данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.periph28335
import org.junit.Assert.assertEquals

View File

@@ -1,3 +1,9 @@
/*
* Проверки GuiGasWatch: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.trends
import org.junit.Assert.*

View File

@@ -1,3 +1,9 @@
/*
* Проверки PlotContract: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.trends
import org.json.JSONObject

View File

@@ -1,3 +1,9 @@
/*
* Проверки PlotViewport: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.trends
import org.junit.Assert.*

View File

@@ -1,3 +1,9 @@
/*
* Проверки TrendSettingsJson: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
package ru.setcorp.setprotocol.trends
import org.json.JSONObject

View File

@@ -1,3 +1,9 @@
/*
* Пример композиции сервисов эмулятора поверх общей карты регистров. Он показывает подключение
* контекста приложения к переносимому обработчику, а не задаёт обязательную карту для всех
* устройств.
*/
/* Minimal board-independent composition. This compiles without any MCU headers.
* Adapt these entry points to the selected board's network/USB/UART/CAN port.
* Run every call in one task (or protect the entire call with the same lock). */

View File

@@ -1,3 +1,9 @@
/*
* Прикладной ProtoCAN-порт STM32 bxCAN с совместимым API PROTOCAN. Контекст прошивки
* поставляет HAL и настройки периферии; упаковка идентификатора опирается на общее ядро
* pcan_id.
*/
#include "protocan.h"
ProtoCanDevice_t CurrentDevice;

View File

@@ -1,3 +1,8 @@
/*
* Публичный интерфейс прикладного ProtoCAN для STM32 bxCAN. Объявления сохраняют исторические
* имена PROTOCAN; конфигурацию CAN и зависимые HAL-типы предоставляет проект прошивки.
*/
//тест
#ifndef _protocan

View File

@@ -1,3 +1,9 @@
/*
* Обслуживание SETProtocol v2 поверх USB CDC для загрузчика. Поток USB разбирается на полные
* команды, после чего операции передаются общему автомату обновления; граница USB-пакета не
* является границей SET-кадра.
*/
/* Shared SET USB boot dispatcher. The MCU wrapper supplies BOOT_* macros. */
#include "usb_setp_stream.h"
#include <string.h>

View File

@@ -1,3 +1,9 @@
/*
* UART/DMA-порт ProtoCAN для STM32F4 с управлением направлением RS-485. Флаги DMA зависят от
* номера stream; перед перенастройкой требуется дождаться фактического снятия EN, а не только
* записать ноль в регистр.
*/
#include <stdint.h>
#include "pcan_uart_stm32f4.h"

View File

@@ -1,3 +1,9 @@
/*
* UART/DMA-порт ProtoCAN для STM32F4 с управлением направлением RS-485. Флаги DMA зависят от
* номера stream; перед перенастройкой требуется дождаться фактического снятия EN, а не только
* записать ноль в регистр.
*/
/**
* @file pcan_uart_stm32f4.h
* @brief Порт транспорта на USART + DMA для STM32F4.

View File

@@ -1,3 +1,9 @@
/*
* Обслуживание Modbus-регистров F407 через CAN485 DevBoard_V1. Порт опрашивает bxCAN FIFO0,
* передаёт запросы серверу регистров и учитывает ошибки отправки; необработанные кадры можно
* передать обработчику приложения.
*/
#include "set_devboard_v1_stm32f407.h"
static bool transmit(set_devboard_v1_stm32f407_t *port,

View File

@@ -1,3 +1,9 @@
/*
* Обслуживание Modbus-регистров F407 через CAN485 DevBoard_V1. Порт опрашивает bxCAN FIFO0,
* передаёт запросы серверу регистров и учитывает ошибки отправки; необработанные кадры можно
* передать обработчику приложения.
*/
/** STM32F407 bxCAN port for SETGUI through CAN485 DevBoard_V1. */
#ifndef SET_DEVBOARD_V1_STM32F407_H
#define SET_DEVBOARD_V1_STM32F407_H

View File

@@ -1,3 +1,9 @@
/*
* STM32F407-порт периферийного протокола УМП. Адаптирует аппаратный обмен и регистровое
* состояние к общему ump_protocol; таблица доступных регистров и конфигурация периферии
* относятся к проекту платы.
*/
#include "ump_stm32f407.h"
size_t ump_stm32f407_rtu(const ump_backend *b, unsigned device,
const uint8_t *request, size_t length, uint8_t *reply, size_t capacity)

View File

@@ -1,3 +1,9 @@
/*
* STM32F407-порт периферийного протокола УМП. Адаптирует аппаратный обмен и регистровое
* состояние к общему ump_protocol; таблица доступных регистров и конфигурация периферии
* относятся к проекту платы.
*/
#ifndef UMP_STM32F407_H
#define UMP_STM32F407_H
#include "../../include/ump_protocol.h"

View File

@@ -1,3 +1,9 @@
/*
* Конфигурация set-protocol для порта stm32f407-usb-boot. Макросы задают параметры сборки и
* ограничения, используемые исходниками этого модуля. Это образец для проекта: значения
* выводов, размеров памяти и параметров устройства необходимо согласовать с целевой платой.
*/
#ifndef F407_BOOT_CONFIG_H
#define F407_BOOT_CONFIG_H
/* Copy to the board include directory as boot_config.h.

View File

@@ -1,3 +1,9 @@
/*
* Аппаратные операции Flash односекционного USB-загрузчика: стирание, запись, проверка и
* фиксация образа. Геометрия разделов берётся из конфигурации платы; признак завершения нельзя
* записывать до успешной проверки данных.
*/
/* Flash geometry and jump sequence derived from climate's F407 bootloader.
* Sector 3 is a durable commit record; sectors 4..7 hold the application.
* Reset checks vectors like climate; USB END always verifies Flash. */

View File

@@ -1,3 +1,9 @@
/*
* Проверки образа перед передачей управления приложению. Адрес стека и вектор сброса должны
* соответствовать памяти целевой платы; наличие байтов во Flash само по себе не означает
* готовность образа к запуску.
*/
#ifndef F407_BOOT_IMAGE_H
#define F407_BOOT_IMAGE_H
#include "boot_port.h"

View File

@@ -1,3 +1,9 @@
/*
* Старт USB-загрузчика и выбор между обслуживанием обновления и запуском приложения. Здесь
* настраиваются аппаратные часы и цикл обслуживания; код выполняется в окружении конкретного
* MCU.
*/
#include "stm32f4xx_hal.h"
#include "boot_config.h"
#include "usb_cdc.h"

View File

@@ -1,3 +1,9 @@
/*
* Контракт аппаратного USB-загрузчика: доступ к образу, запрос перезапуска и операции Flash.
* Его реализация зависит от семейства MCU, тогда как последовательность обновления задаётся
* общим set_boot.
*/
#ifndef F407_BOOT_PORT_H
#define F407_BOOT_PORT_H
#include "set_boot.h"

View File

@@ -1,3 +1,8 @@
/*
* Передача запроса входа в загрузчик через backup-состояние и отложенный сброс. Флаг должен
* пережить перезапуск, чтобы загрузчик отличил обновление от обычного старта приложения.
*/
#include "boot_port.h"
#include "stm32f4xx_hal.h"
#define REQUEST_MAGIC 0x42555342UL

View File

@@ -1,3 +1,9 @@
/*
* Обслуживание SETProtocol v2 поверх USB CDC для загрузчика. Поток USB разбирается на полные
* команды, после чего операции передаются общему автомату обновления; граница USB-пакета не
* является границей SET-кадра.
*/
#include "stm32f4xx_hal.h"
#include "boot_port.h"
#include "boot_config.h"

View File

@@ -1,3 +1,9 @@
/*
* Проверки boot_image: фиксируют ожидаемое поведение на воспроизводимых входных данных.
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
* настройками рабочего устройства.
*/
#include "boot_image.h"
#include <assert.h>
#include <stdio.h>

View File

@@ -1,3 +1,9 @@
/*
* Воспроизведение таблицы ЦАП STM32F407 через TIM6 и DMA1 Stream5. Частота должна точно делить
* частоту таймера, а массив находиться в доступной DMA-памяти; старт предварительно загружает
* последний отсчёт циклической таблицы.
*/
#include "set_wave_f407.h"
#include "stm32f4xx.h"
static void stop(void *context) {

View File

@@ -1,3 +1,9 @@
/*
* Воспроизведение таблицы ЦАП STM32F407 через TIM6 и DMA1 Stream5. Частота должна точно делить
* частоту таймера, а массив находиться в доступной DMA-памяти; старт предварительно загружает
* последний отсчёт циклической таблицы.
*/
#ifndef SET_WAVE_F407_H
#define SET_WAVE_F407_H
#include "../../include/set_wavegen.h"

View File

@@ -1,3 +1,9 @@
/*
* Аппаратная подготовка периферийного стенда STM32G474. Конфигурация GPIO и периферии
* относится к плате; сервисы регистров и протоколы подключаются поверх уже подготовленного
* оборудования.
*/
/**
* Аппаратный порт STM32G474RB: векторы приложения, тактирование и GPIO.
* Алгоритмы UMP/TMS/IGBT находятся в общем C-ядре templates; здесь только пины.

Some files were not shown because too many files have changed in this diff Show More