docs: добавь поясняющие комментарии к модулям и инструментам
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
# Сборка общей библиотеки SETProtocol средствами Android NDK. C-ядро и JNI-обёртки входят в
|
||||
# один модуль; список исходников должен включать реализации всех native-методов Kotlin.
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Kotlin-модель обмена с мостом CAN/RS485. Преобразование wire-кадров делегируется общему
|
||||
* ядру; пользовательский интерфейс получает типизированные поля, не зависящие от JNI-массивов.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setflash.core
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol as NativeProtoCan
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Кадрирование исторического GUI protocol v1. Parser накапливает части входного потока и
|
||||
* проверяет сообщение до выдачи результата; этот формат следует выбирать по профилю
|
||||
* соединения, а не только по сигнатуре.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setflash.core
|
||||
|
||||
import java.util.zip.CRC32
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Общий каталог типов сообщений ProtoCAN для Android-клиентов. Числовые коды являются частью
|
||||
* протокола; подписи служат отображению и не должны использоваться вместо кодов в обмене.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setflash.core
|
||||
|
||||
/** Canonical ProtoCAN message-type registry shared by Android protocol clients. */
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Kotlin-фасад протокола BALZAM/TMS320F2812. Кадрирование и контрольные суммы выполняет
|
||||
* C99-ядро через NativeSetProtocol; модели Kotlin описывают аргументы и результаты операций.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setflash.core
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Kotlin-объявления JNI-вызовов общего SETProtocol. Порядок и типы аргументов должны совпадать
|
||||
* с setprotocol_jni.c; библиотека должна содержать все объявленные нативные символы.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol
|
||||
|
||||
/** Thin Kotlin facade over the shared C99 SETProtocol core. */
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Android-представление исторического CAN-протокола BALZAM. Код связывает Kotlin-модели с
|
||||
* общим ядром; регистры и формат идентификаторов не относятся к протоколу ПМ35.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.balsam
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Android-модель исторического CAN-терминала и выбора проекта. Каталог определяет семантику
|
||||
* команд, а транспорт только доставляет CAN-кадры; UI не должен создавать собственную копию
|
||||
* wire-формата.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.legacycan
|
||||
|
||||
/** Wire formats implemented by the historical CAN_terminal application. */
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Android-фасад отдельного протокола ПМ35/TMS320F28335. Запросы и ответы преобразуются через
|
||||
* общее ядро; профиль периферийного контроллера сохраняется отдельно от TMS320F2812.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.periph28335
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Android-поддержка наблюдения за объектами GAS через GUI-протокол. Подписка связывает список
|
||||
* выбранных адресов с поступающими значениями; смена выбора требует согласования состояния
|
||||
* клиента.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Модель области просмотра графика для Android. Границы и преобразования координат связывают
|
||||
* жесты интерфейса с общей математикой; изменение видимой области не меняет измеренные данные.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
/** Normalized top-left viewport; independent of pixels, units, toolkit and samples. */
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Android-адаптер декодирования источников трендов. Сырые данные интерпретируются по типу
|
||||
* источника и его параметрам, а результаты передаются модели отображения в числовом виде.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Состояние измерительных маркеров и линеек графика. Маркер относится к координатам
|
||||
* отображаемого сигнала; его перемещение не изменяет полученные выборки или настройки
|
||||
* транспорта.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import kotlin.math.abs
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Модели источников и настроек трендов, используемые клиентскими приложениями. Идентификатор
|
||||
* сигнала связывает историю с источником независимо от имени и порядка; визуальное
|
||||
* переименование не должно менять физический источник.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import java.util.UUID
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Чтение и запись общего JSON-контракта настроек трендов. Стабильные идентификаторы и версия
|
||||
* формата нужны для обмена настройками между Android и Python; UI-порядок не заменяет
|
||||
* идентичность сигнала.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import org.json.JSONArray
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Привязка общего расчёта спектра C99 к клиенту. Входные временные метки задаются в секундах;
|
||||
* частота дискретизации и нормировка определяются ядром, поэтому отображение не должно
|
||||
* повторно нормировать амплитуды.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import ru.setcorp.setprotocol.NativeSetProtocol
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Модель каталога firmware.releases и проверка записей update.json. Метаданные выпуска
|
||||
* описывают совместимость и расположение образа; выбор записи и последующее скачивание
|
||||
* являются отдельными операциями.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.update
|
||||
|
||||
import android.util.Base64
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Граница JNI между Kotlin и общим C-ядром. Массивы и примитивные значения Java преобразуются
|
||||
* в аргументы C; полученные через JNI указатели имеют ограниченное время жизни и должны
|
||||
* освобождаться по правилам JNI.
|
||||
*/
|
||||
|
||||
#include <jni.h>
|
||||
#include "set_plot.h"
|
||||
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Граница JNI между Kotlin и общим C-ядром. Массивы и примитивные значения Java преобразуются
|
||||
* в аргументы C; полученные через JNI указатели имеют ограниченное время жизни и должны
|
||||
* освобождаться по правилам JNI.
|
||||
*/
|
||||
|
||||
#include <jni.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки ProtoCanCatalog: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setflash.core
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки TmsTerminalShared: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setflash.core
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки BalsamCanProtocol: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.balsam
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки LegacyCanTerminal: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.legacycan
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
/*
|
||||
* Проверки Periph28335Protocol: фиксируют ожидаемое поведение на воспроизводимых входных
|
||||
* данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.periph28335
|
||||
|
||||
import org.junit.Assert.assertEquals
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки GuiGasWatch: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки PlotContract: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import org.json.JSONObject
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки PlotViewport: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки TrendSettingsJson: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
package ru.setcorp.setprotocol.trends
|
||||
|
||||
import org.json.JSONObject
|
||||
|
||||
@@ -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). */
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Прикладной ProtoCAN-порт STM32 bxCAN с совместимым API PROTOCAN. Контекст прошивки
|
||||
* поставляет HAL и настройки периферии; упаковка идентификатора опирается на общее ядро
|
||||
* pcan_id.
|
||||
*/
|
||||
|
||||
#include "protocan.h"
|
||||
|
||||
ProtoCanDevice_t CurrentDevice;
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Публичный интерфейс прикладного ProtoCAN для STM32 bxCAN. Объявления сохраняют исторические
|
||||
* имена PROTOCAN; конфигурацию CAN и зависимые HAL-типы предоставляет проект прошивки.
|
||||
*/
|
||||
|
||||
//тест
|
||||
|
||||
#ifndef _protocan
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* UART/DMA-порт ProtoCAN для STM32F4 с управлением направлением RS-485. Флаги DMA зависят от
|
||||
* номера stream; перед перенастройкой требуется дождаться фактического снятия EN, а не только
|
||||
* записать ноль в регистр.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#include "pcan_uart_stm32f4.h"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* UART/DMA-порт ProtoCAN для STM32F4 с управлением направлением RS-485. Флаги DMA зависят от
|
||||
* номера stream; перед перенастройкой требуется дождаться фактического снятия EN, а не только
|
||||
* записать ноль в регистр.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file pcan_uart_stm32f4.h
|
||||
* @brief Порт транспорта на USART + DMA для STM32F4.
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* STM32F407-порт периферийного протокола УМП. Адаптирует аппаратный обмен и регистровое
|
||||
* состояние к общему ump_protocol; таблица доступных регистров и конфигурация периферии
|
||||
* относятся к проекту платы.
|
||||
*/
|
||||
|
||||
#ifndef UMP_STM32F407_H
|
||||
#define UMP_STM32F407_H
|
||||
#include "../../include/ump_protocol.h"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки образа перед передачей управления приложению. Адрес стека и вектор сброса должны
|
||||
* соответствовать памяти целевой платы; наличие байтов во Flash само по себе не означает
|
||||
* готовность образа к запуску.
|
||||
*/
|
||||
|
||||
#ifndef F407_BOOT_IMAGE_H
|
||||
#define F407_BOOT_IMAGE_H
|
||||
#include "boot_port.h"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Старт USB-загрузчика и выбор между обслуживанием обновления и запуском приложения. Здесь
|
||||
* настраиваются аппаратные часы и цикл обслуживания; код выполняется в окружении конкретного
|
||||
* MCU.
|
||||
*/
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
#include "boot_config.h"
|
||||
#include "usb_cdc.h"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Контракт аппаратного USB-загрузчика: доступ к образу, запрос перезапуска и операции Flash.
|
||||
* Его реализация зависит от семейства MCU, тогда как последовательность обновления задаётся
|
||||
* общим set_boot.
|
||||
*/
|
||||
|
||||
#ifndef F407_BOOT_PORT_H
|
||||
#define F407_BOOT_PORT_H
|
||||
#include "set_boot.h"
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*
|
||||
* Передача запроса входа в загрузчик через backup-состояние и отложенный сброс. Флаг должен
|
||||
* пережить перезапуск, чтобы загрузчик отличил обновление от обычного старта приложения.
|
||||
*/
|
||||
|
||||
#include "boot_port.h"
|
||||
#include "stm32f4xx_hal.h"
|
||||
#define REQUEST_MAGIC 0x42555342UL
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Обслуживание SETProtocol v2 поверх USB CDC для загрузчика. Поток USB разбирается на полные
|
||||
* команды, после чего операции передаются общему автомату обновления; граница USB-пакета не
|
||||
* является границей SET-кадра.
|
||||
*/
|
||||
|
||||
#include "stm32f4xx_hal.h"
|
||||
#include "boot_port.h"
|
||||
#include "boot_config.h"
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Проверки boot_image: фиксируют ожидаемое поведение на воспроизводимых входных данных.
|
||||
* Тестовые значения и подмены окружения относятся к проверке контракта; они не являются
|
||||
* настройками рабочего устройства.
|
||||
*/
|
||||
|
||||
#include "boot_image.h"
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Воспроизведение таблицы ЦАП STM32F407 через TIM6 и DMA1 Stream5. Частота должна точно делить
|
||||
* частоту таймера, а массив находиться в доступной DMA-памяти; старт предварительно загружает
|
||||
* последний отсчёт циклической таблицы.
|
||||
*/
|
||||
|
||||
#include "set_wave_f407.h"
|
||||
#include "stm32f4xx.h"
|
||||
static void stop(void *context) {
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
/*
|
||||
* Воспроизведение таблицы ЦАП STM32F407 через TIM6 и DMA1 Stream5. Частота должна точно делить
|
||||
* частоту таймера, а массив находиться в доступной DMA-памяти; старт предварительно загружает
|
||||
* последний отсчёт циклической таблицы.
|
||||
*/
|
||||
|
||||
#ifndef SET_WAVE_F407_H
|
||||
#define SET_WAVE_F407_H
|
||||
#include "../../include/set_wavegen.h"
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user