Init
This commit is contained in:
commit
6d688be71d
|
|
@ -0,0 +1,31 @@
|
|||
//
|
||||
// Created by cfif on 27.02.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_GSM_MODEMALMANAH_H
|
||||
#define GONEC_GSM_MODEMALMANAH_H
|
||||
|
||||
#include <SerialPortIO.h>
|
||||
#include "DeviceStorageIni.h"
|
||||
#include <Gnss.h>
|
||||
#include "ModemGonec.h"
|
||||
#include "fs_interface.h"
|
||||
#include "RtcIO.h"
|
||||
#include "ModemGnss.h"
|
||||
#include "httpd_types.h"
|
||||
#include "file_logger.h"
|
||||
#include "stdbool.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "fs_base_func.h"
|
||||
#include "httpd_base_func.h"
|
||||
|
||||
// Инициализация записи файла альманаха
|
||||
bool initWriteAlmanah(tFs *fs);
|
||||
|
||||
// Запись файла альманаха
|
||||
bool writeAlmanah(tModemMain *env);
|
||||
|
||||
|
||||
|
||||
#endif //GONEC_GSM_MODEMALMANAH_H
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
//
|
||||
// Created by cfif on 23.03.2024.
|
||||
//
|
||||
|
||||
#ifndef GONEC_FULL_MODEMBUFCREATEHEADER_H
|
||||
#define GONEC_FULL_MODEMBUFCREATEHEADER_H
|
||||
|
||||
#include "ModemSendFunc.h"
|
||||
|
||||
bool cuteOffset(tFs *fs, char *path, char *bufDumpFile, uint32_t lenBufDumpFile, uint32_t cuteOffsetBegin);
|
||||
bool isTo(char *to, char ch);
|
||||
|
||||
#endif //GONEC_FULL_MODEMBUFCREATEHEADER_H
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
//
|
||||
// Created by cfif on 08.02.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_GSM_MODEMGNSS_H
|
||||
#define GONEC_GSM_MODEMGNSS_H
|
||||
#include "stdint.h"
|
||||
#include "stdbool.h"
|
||||
|
||||
typedef struct {
|
||||
|
||||
double gnss_latitude;
|
||||
double gnss_longitude;
|
||||
|
||||
uint32_t speed;
|
||||
uint32_t curse;
|
||||
|
||||
bool valid;
|
||||
} tTracertNavData;
|
||||
|
||||
typedef struct {
|
||||
|
||||
int32_t latitude;
|
||||
int32_t longitude;
|
||||
|
||||
uint16_t direction;
|
||||
|
||||
bool valid;
|
||||
} tNavDataMsd;
|
||||
|
||||
|
||||
typedef struct {
|
||||
bool isOneDateTime;
|
||||
bool isOneValidGnss;
|
||||
|
||||
uint32_t region;
|
||||
|
||||
bool isDateTimeRecv;
|
||||
bool isTimeOneStartBlock;
|
||||
|
||||
double gnss_latitude;
|
||||
double gnss_longitude;
|
||||
|
||||
double latitude;
|
||||
double longitude;
|
||||
|
||||
bool valid;
|
||||
} tModemNavData;
|
||||
|
||||
typedef struct {
|
||||
int16_t minLatitude;
|
||||
int16_t maxLatitude;
|
||||
int16_t minLongitude;
|
||||
int16_t maxLongitude;
|
||||
} tRegionData;
|
||||
|
||||
typedef struct {
|
||||
uint8_t min;
|
||||
uint8_t max;
|
||||
char ewIndicator;
|
||||
} tRegionDataEwIndicator;
|
||||
|
||||
extern const tRegionData regionData[60];
|
||||
|
||||
#endif //GONEC_GSM_MODEMGNSS_H
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
//
|
||||
// Created by cfif on 18.02.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_LOG_MODEMLOG_H
|
||||
#define GONEC_LOG_MODEMLOG_H
|
||||
|
||||
#include <SerialPortIO.h>
|
||||
#include <DeviceStorageIni.h>
|
||||
#include <Gnss.h>
|
||||
#include "ModemGonec.h"
|
||||
#include "fs_interface.h"
|
||||
#include "RtcIO.h"
|
||||
#include "ModemGnss.h"
|
||||
#include "httpd_types.h"
|
||||
#include "file_logger.h"
|
||||
#include <DeviceStorageIni.h>
|
||||
|
||||
typedef struct {
|
||||
tSerialPortIO *io;
|
||||
|
||||
// tLoggerInterface *logger;
|
||||
// tAtCmd modemAt;
|
||||
tFs *fs;
|
||||
tRtcIO *rtcIO;
|
||||
|
||||
tDeviceStorageIni *store;
|
||||
|
||||
osMutexId_t access;
|
||||
|
||||
// struct {
|
||||
// uint8_t modemRx[2048];
|
||||
// uint8_t modemTx[2048];
|
||||
// } mem;
|
||||
|
||||
struct {
|
||||
osThreadId_t id;
|
||||
uint32_t stack[4096];
|
||||
StaticTask_t controlBlock;
|
||||
osThreadAttr_t attr;
|
||||
} thread;
|
||||
|
||||
char filename[64];
|
||||
char buf[24];
|
||||
uint8_t bufLog[512];
|
||||
time_t timestampWriteFileLogger;
|
||||
|
||||
|
||||
} tModemMainLog;
|
||||
|
||||
|
||||
void ModemMainLog_Init(
|
||||
tModemMainLog *env,
|
||||
tDeviceStorageIni *store,
|
||||
tSerialPortIO *io,
|
||||
tRtcIO *rtcIO,
|
||||
tFs *fs,
|
||||
osMutexId_t access_log
|
||||
);
|
||||
|
||||
void ModemMainLog_StartThread(tModemMainLog *env);
|
||||
|
||||
uint32_t getStateWriteLog2(tModemMainLog *env);
|
||||
|
||||
#endif //GONEC_LOG_MODEMLOG_H
|
||||
|
|
@ -0,0 +1,397 @@
|
|||
//
|
||||
// Created by cfif on 04.10.2022.
|
||||
//
|
||||
|
||||
#ifndef MODEMMAIN_H
|
||||
#define MODEMMAIN_H
|
||||
|
||||
#include <SerialPortIO.h>
|
||||
#include <DeviceStorageIni.h>
|
||||
#include <Gnss.h>
|
||||
#include "ModemGonec.h"
|
||||
#include "fs_interface.h"
|
||||
#include "RtcIO.h"
|
||||
#include "ModemGnss.h"
|
||||
#include "httpd_types.h"
|
||||
#include "file_logger.h"
|
||||
#include "stdbool.h"
|
||||
#include "GonetsReedSalmon.h"
|
||||
#include "md5alg.h"
|
||||
#include "Gpios.h"
|
||||
#include "GonetsAlmanac.h"
|
||||
|
||||
//#define DEBUG_MODEM 1
|
||||
//#define DEBUG_EXT_MODEM 1
|
||||
|
||||
#define maxFilesOutBox 128
|
||||
|
||||
|
||||
typedef enum {
|
||||
TYPE_FILE_MESSAGE = 0,
|
||||
TYPE_FILE_TRACERT = 1,
|
||||
TYPE_FILE_KVITIN = 2,
|
||||
TYPE_FILE_AMS_RADAR = 3,
|
||||
TYPE_FILE_LORA_WAN = 4
|
||||
} tTypeFile;
|
||||
|
||||
typedef enum {
|
||||
BUF_NO_RECEIVE = 0,
|
||||
BUF_NO_RECEIVE_KV = 1,
|
||||
BUF_RECEIVE = 2
|
||||
} tBufFreeFillState;
|
||||
|
||||
typedef enum {
|
||||
SLOT_FREE = 0,
|
||||
SLOT_READY_READ_OR_WRITE = 1,
|
||||
SLOT_READY_SENDING = 2,
|
||||
SLOT_INIT = 3
|
||||
} tStatusModem;
|
||||
|
||||
typedef struct {
|
||||
char path_mask_fileName[MAX_LEN_PATH_FS];
|
||||
} tModemStatusFile;
|
||||
|
||||
typedef struct {
|
||||
uint32_t sendFrom[32];
|
||||
uint32_t sendLen[32];
|
||||
uint32_t idMessage[32];
|
||||
uint32_t urgency[32];
|
||||
uint8_t type[32];
|
||||
uint8_t sos[32];
|
||||
uint8_t id[32];
|
||||
tStatusModem status[32];
|
||||
} tModemStatus;
|
||||
|
||||
typedef struct {
|
||||
uint32_t receive; // Смещение доставленных пакетов
|
||||
uint32_t no_receive; // Смещение не доставленных пакетов
|
||||
} tStructReceiveOffset;
|
||||
|
||||
typedef struct {
|
||||
tTypeFile typeFile;
|
||||
uint32_t from;
|
||||
uint32_t mnum;
|
||||
char to[MAX_LEN_PATH_FS];
|
||||
uint32_t urgency;
|
||||
uint32_t chSv;
|
||||
char subj[MAX_LEN_PATH_FS];
|
||||
uint32_t kvs;
|
||||
char fileName[MAX_LEN_PATH_FS];
|
||||
uint32_t dateDay;
|
||||
uint32_t dateMon;
|
||||
uint32_t offsetMsg;
|
||||
uint32_t sizeFileRep;
|
||||
uint32_t isSendAll;
|
||||
uint32_t bytes_sending;
|
||||
uint32_t bytes_no_sending;
|
||||
uint32_t sos;
|
||||
|
||||
uint32_t kvt_num;
|
||||
uint32_t kvt_mon;
|
||||
uint32_t kvt_day;
|
||||
|
||||
uint32_t crc32_MSK;
|
||||
uint32_t crc32_REP;
|
||||
} tFileSendInfo;
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint32_t bytes_sending;
|
||||
uint32_t bytes_no_sending;
|
||||
uint32_t mnum;
|
||||
uint8_t kvs;
|
||||
uint8_t valid;
|
||||
uint8_t isSendAll;
|
||||
} tFileSendInfoForJson;
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint32_t from;
|
||||
uint32_t mnumFrom;
|
||||
uint32_t to;
|
||||
uint32_t chSv;
|
||||
uint32_t kvs;
|
||||
uint32_t mnum;
|
||||
uint32_t dateDay;
|
||||
uint32_t dateMon;
|
||||
uint32_t fileSize;
|
||||
uint32_t isEnd;
|
||||
uint32_t isRecvInbox;
|
||||
uint32_t crc32_MSK;
|
||||
uint32_t crc32_REP;
|
||||
} tFileRecvInfo;
|
||||
|
||||
typedef enum {
|
||||
StateReqAlmaNoSendStatus = 0,
|
||||
StateReqAlmaSendStatus = 1,
|
||||
StateReqAlmaReady = 3
|
||||
} tStateReqAlma;
|
||||
|
||||
typedef enum {
|
||||
StateReqSosStatusOff = 0,
|
||||
StateReqSosStatusOn = 1
|
||||
} tStateReqSos;
|
||||
|
||||
typedef enum {
|
||||
StateReqRegNoSendStatus = 0,
|
||||
StateReqRegSendStatus = 1,
|
||||
} tStateReqReg;
|
||||
|
||||
typedef enum {
|
||||
StateReqAlmaWebStop = 0,
|
||||
StateReqAlmaWebRun = 1,
|
||||
StateReqAlmaWebRunInit = 3
|
||||
} tStateReqAlmaWebRunStop;
|
||||
|
||||
typedef enum {
|
||||
StateReqExtNone = 0,
|
||||
StateReqExtForDel = 1,
|
||||
StateReqExtForCreate = 2
|
||||
} tStateReqExt;
|
||||
|
||||
typedef enum {
|
||||
MODEM_WORKING_NONE,
|
||||
MODEM_WORKING_REG,
|
||||
MODEM_WORKING_ALMA,
|
||||
MODEM_WORKING_MSG
|
||||
} tModemWorkingState;
|
||||
|
||||
|
||||
typedef struct {
|
||||
time_t EVENT_OUTBOX;
|
||||
time_t EVENT_INBOX;
|
||||
time_t EVENT_SENTBOX;
|
||||
time_t EVENT_ALMA;
|
||||
time_t EVENT_TRACERT;
|
||||
} tEventWebState;
|
||||
|
||||
#define LEN_TRANS_PACKET 1300
|
||||
|
||||
|
||||
typedef struct {
|
||||
uint32_t numberSender;
|
||||
uint32_t numberMessage;
|
||||
uint32_t dataType;
|
||||
uint32_t dataCreationDay;
|
||||
uint32_t dataCreationMon;
|
||||
bool isEnabled;
|
||||
bool isCrcUpdate;
|
||||
} tPacketDataForKvitin;
|
||||
|
||||
typedef struct {
|
||||
tFs *fs;
|
||||
tDeviceStorageIni *store;
|
||||
tGnss *gnss;
|
||||
|
||||
tGpios *gpios;
|
||||
|
||||
tLoggerInterface *logger;
|
||||
tAtCmd modemAt;
|
||||
|
||||
tAtCmd modemAtGsm;
|
||||
|
||||
tRtcIO *rtcIo;
|
||||
|
||||
tModemWorkingState modemWorkingState;
|
||||
|
||||
uint32_t stepRssi;
|
||||
int32_t dataRssi[10];
|
||||
|
||||
uint32_t timestamp_start_block;
|
||||
uint32_t timestamp_start_block_work;
|
||||
uint32_t timestamp_start_block_work_add;
|
||||
tModemNavData location;
|
||||
|
||||
tFileLogger *flog;
|
||||
|
||||
tPacketDataForKvitin packetDataForKvitin[16];
|
||||
// tFileSendInfoForJson fileSendInfoForJson[maxFilesOutBox];
|
||||
|
||||
osMutexId_t accessHTTP;
|
||||
osMutexId_t accessMODEM;
|
||||
osMutexId_t accessMODEM_GSM;
|
||||
|
||||
tModemStatus modemStatus;
|
||||
tStatusModem modemStatusOld[32];
|
||||
|
||||
bool isModemStart;
|
||||
|
||||
bool isRequestModemRecvSlots;
|
||||
|
||||
bool modemSlotSendStatusReload;
|
||||
bool modemSlotReceivedStatusReload;
|
||||
|
||||
uint32_t testOne;
|
||||
|
||||
struct {
|
||||
uint8_t modemRx[2048];
|
||||
uint8_t modemTx[2048];
|
||||
} memGonec;
|
||||
|
||||
struct {
|
||||
uint8_t modemRx[2048];
|
||||
uint8_t modemTx[2048];
|
||||
} memGsm;
|
||||
|
||||
struct {
|
||||
tStateReqExt stateReqDelExtW;
|
||||
tStateReqExt stateReqCreateExtW;
|
||||
|
||||
tStateReqExt stateReqDelExtT;
|
||||
tStateReqExt stateReqCreateExtT;
|
||||
|
||||
tStateReqAlma stateReqAlma;
|
||||
tStateReqReg stateReqReg;
|
||||
|
||||
tStateReqSos stateReqSos;
|
||||
|
||||
tStateReqAlmaWebRunStop stateReqAlmaWebRunStop;
|
||||
} stateRequest;
|
||||
|
||||
struct {
|
||||
osThreadId_t id;
|
||||
uint32_t stack[6144];
|
||||
StaticTask_t controlBlock;
|
||||
osThreadAttr_t attr;
|
||||
} thread;
|
||||
|
||||
|
||||
// uint32_t timeStuckGetMs;
|
||||
|
||||
uint32_t mnumBufScan[128];
|
||||
uint32_t mnumBufScanCount;
|
||||
|
||||
int32_t rssi;
|
||||
int32_t temp;
|
||||
uint32_t state;
|
||||
uint32_t pwramp;
|
||||
char bufLog[1024];
|
||||
|
||||
osMutexId_t accessTracert;
|
||||
|
||||
uint8_t bufReceivedPacket[LEN_TRANS_PACKET];
|
||||
uint32_t bufReceivedPacketLen;
|
||||
|
||||
uint8_t bufSendPacketKvitin[LEN_TRANS_PACKET * 6];
|
||||
|
||||
uint32_t timeUpdateModemRegion;
|
||||
|
||||
uint8_t bufSendPacket[LEN_TRANS_PACKET];
|
||||
tStructReceiveOffset structReceiveOffset[250];
|
||||
|
||||
tEventWebState eventWebState;
|
||||
|
||||
tGalois256 galois256;
|
||||
tGonetsReedSalmon GonetsReedSalmonParity4;
|
||||
md5a_context md5ctx_t;
|
||||
md5a_context md5ctx_r;
|
||||
|
||||
int32_t msgId;
|
||||
char gsmIMEI[16];
|
||||
char gsmSimId[16];
|
||||
|
||||
tGonetsAlmanac alms[50];
|
||||
int countAlmanac;
|
||||
|
||||
bool isModemCheck;
|
||||
uint32_t isEnableTracerTimeStamp;
|
||||
|
||||
|
||||
} tModemMain;
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
uint8_t versionProtocol; // Версия протокола
|
||||
uint8_t classMessage; // Класс сообщения
|
||||
uint8_t typeMessage; // Тип сообщения
|
||||
uint32_t typeCodingNoise: 4; // Тип помехоустойчивого кодирования
|
||||
uint32_t typeTransformation: 4; // Тип преобразования сообщения
|
||||
uint32_t typeCompression: 4; // Тип сжатия сообщения
|
||||
uint32_t typeCrc: 4; // Тип контрольной суммы
|
||||
uint32_t reserve; // Резерв
|
||||
uint8_t crc8; // crc
|
||||
uint32_t rc; // Р-С
|
||||
} tStructRepresentationPacket;
|
||||
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
//#pragma scalar_storage_order big-endian
|
||||
//#pragma pack(push, 1)
|
||||
//typedef struct {
|
||||
uint32_t versionProtocol: 4; // Версия протокола
|
||||
uint32_t dataType: 4; // Тип данных
|
||||
uint32_t numberSender: 24; // Номер отправителя
|
||||
uint32_t dateCreateTransportPacketDay: 5; // Дата формирования транспортного пакета
|
||||
uint32_t dateCreateTransportPacketMon: 4; // Дата формирования транспортного пакета
|
||||
uint32_t numberMessage: 15; // Номер сообщения
|
||||
uint32_t offsetPacket: 23; // Смещение пакета в сообщении
|
||||
uint32_t isEnd: 1; // Признак последнего пакета
|
||||
} tStructTransportPacket;
|
||||
//#pragma pack(pop)
|
||||
//#pragma scalar_storage_order little-endian
|
||||
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
//#pragma scalar_storage_order big-endian
|
||||
//#pragma pack(push, 1)
|
||||
//typedef struct {
|
||||
uint32_t d1: 5; // Признак последнего пакета
|
||||
uint32_t d2: 3; // Признак последнего пакета
|
||||
uint32_t d3: 4; // Признак последнего пакета
|
||||
uint32_t d4: 4; // Признак последнего пакета
|
||||
uint32_t d5: 8; // Признак последнего пакета
|
||||
} tGGG;
|
||||
//#pragma pack(pop)
|
||||
//#pragma scalar_storage_order little-endian
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
uint32_t offsetKvitPacket: 24; // Смещение доставленных пакетов
|
||||
} tStructTransportKvitPacketData;
|
||||
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
uint32_t versionProtocol: 4; // Версия протокола
|
||||
uint32_t dataType: 4; // Тип данных
|
||||
uint32_t numberSender: 24; // Номер отправителя
|
||||
uint32_t dateCreateTransportPacketDay: 5; // Дата формирования транспортного пакета
|
||||
uint32_t dateCreateTransportPacketMon: 4; // Дата формирования транспортного пакета
|
||||
uint32_t numberMessage: 15; // Номер сообщения
|
||||
} tStructTransportKvitPacket;
|
||||
|
||||
typedef struct __attribute__ ((packed)) {
|
||||
uint8_t packetType; // Тип пакета
|
||||
uint16_t sizeTransportPacket; // Размер транспортного служебного пакета
|
||||
uint8_t numberRecipient[3]; // Номер получателя
|
||||
uint8_t idArray; // Идентификатор массива
|
||||
uint16_t offsetByteArray; // Смещение первого байта сегмента в массиве
|
||||
uint8_t isEndSegment; // Признак последнего сегмент в массиве
|
||||
uint8_t typeArray; // Тип массива
|
||||
} tStructTransportPacketService;
|
||||
|
||||
void ModemMain_Init(
|
||||
tModemMain *env,
|
||||
tGpios *gpios,
|
||||
tSerialPortIO *ioGonec,
|
||||
tSerialPortIO *ioGsm,
|
||||
tGnss *gnss,
|
||||
tDeviceStorageIni *store,
|
||||
tFileLogger *flog,
|
||||
tFs *fs,
|
||||
tRtcIO *rtcIo,
|
||||
osMutexId_t accessMODEM_GSM,
|
||||
osMutexId_t accessMODEM,
|
||||
osMutexId_t accessHTTP,
|
||||
osMutexId_t accessTracert
|
||||
);
|
||||
|
||||
void ModemMain_StartThread(tModemMain *env);
|
||||
bool stuckModem(tModemMain *env);
|
||||
|
||||
void getDelFilesDirScanCrc(tModemMain *env);
|
||||
void controlFiles(tFs *fs, char *ext, char *path);
|
||||
void sendMsd(tModemMain *env);
|
||||
//void sendAmsRadar(tModemMain *env, char *buf, uint32_t buf_len);
|
||||
bool almac_load_from_file(tModemMain *env);
|
||||
|
||||
void sendExtProtokolPack(tModemMain *env, tTypeFile typeFile, char *buf, uint32_t buf_len);
|
||||
|
||||
#endif //MODEMMAIN_H
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
//
|
||||
// Created by cfif on 21.04.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_GSM_MODEMRECEIVE_H
|
||||
#define GONEC_GSM_MODEMRECEIVE_H
|
||||
#include "ModemMain.h"
|
||||
|
||||
void RequestModemRecvSlots(tModemMain *env);
|
||||
bool HandlerModemInPaket(tModemMain *env, uint32_t id);
|
||||
bool HandlerModemPaketKvitin(tModemMain *env);
|
||||
// Создание файла квитанции входящего сообщения
|
||||
bool createFileKvitinInbox(tModemMain *env);
|
||||
bool HandlerModemKvitPaket(tModemMain *env);
|
||||
|
||||
#endif //GONEC_GSM_MODEMRECEIVE_H
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
//
|
||||
// Created by cfif on 21.02.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_GSM_MODEMRECEIVEFUNC_C_H
|
||||
#define GONEC_GSM_MODEMRECEIVEFUNC_C_H
|
||||
|
||||
#include <SerialPortIO.h>
|
||||
#include <Gnss.h>
|
||||
#include "ModemGonec.h"
|
||||
#include "fs_interface.h"
|
||||
#include "RtcIO.h"
|
||||
#include "ModemGnss.h"
|
||||
#include "httpd_types.h"
|
||||
#include "file_logger.h"
|
||||
#include "stdbool.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "fs_base_func.h"
|
||||
|
||||
typedef enum {
|
||||
RECV_OK = 0,
|
||||
RECV_ERROR_CRC = 1,
|
||||
RECV_ERROR= 2
|
||||
} tReceiveBuildResult;
|
||||
|
||||
// Получение информации о принятых файлах
|
||||
bool checkNumSentBox(tFs *fs, tRtcIO *rtc, uint32_t mnum, uint32_t from);
|
||||
|
||||
// Создание имени файла
|
||||
void createFileNameForId(char *path, char *basePath, uint32_t id, char *ext);
|
||||
// Создание имени файла
|
||||
void createFileNameForId_REP_MSK_INF(char *pathRep, char *pathMsk, char *pathInf, char *basePath, uint32_t id);
|
||||
|
||||
// Создание имени файла из транспортного пакета
|
||||
//void
|
||||
//createFileFragInbox(char *path, uint32_t dateCreateTransportPacket, uint32_t numberSender, uint32_t numberMessage, char t, char *ext);
|
||||
|
||||
bool readRecvFileInfo(tFs *fs, tFileRecvInfo *fileRecvInfo, char *path_inf_fileName);
|
||||
|
||||
bool writeRecvFileInfo(tFs *fs, tFileRecvInfo *fileRecvInfo, char *path_inf_fileName);
|
||||
|
||||
bool readRepresentationRecvFileRep(tFs *fs, tStructRepresentationPacket *structRepresentationPacket,
|
||||
char *path_dir_frag_inbox_fileName);
|
||||
|
||||
// Прием пакетов - Создание файлов
|
||||
bool isReceivedCreate(tFs *fs, uint32_t mnum, uint32_t to, tStructTransportPacket *packet, uint8_t *buf, uint32_t buf_len,
|
||||
char *path_dir_info_fileName, char *path_dir_mask_fileName, char *path_dir_frag_inbox_fileName, bool *isCrcUpdate);
|
||||
|
||||
// Прием пакетов - Добавление файлов
|
||||
bool isReceivedAppend(tFs *fs, tStructTransportPacket *packet, uint8_t *buf, uint32_t buf_len,
|
||||
char *path_dir_info_fileName, char *path_dir_mask_fileName, char *path_dir_frag_inbox_fileName, bool *isCrcUpdate);
|
||||
|
||||
// Сообщение принято целиком
|
||||
bool isReceivedAll(tFs *fs, char *path_dir_info_fileName, char *path_dir_mask_fileName, bool *isAll);
|
||||
|
||||
bool Kvitin(tFs *fs, tRtcIO *rtcIo, uint32_t numberMessage, uint32_t numberSender,
|
||||
char *path_dir_info_fileName, char *path_dir_mask_fileName, uint8_t *bufKvit, uint32_t *lenPacketKvit,
|
||||
bool *isAll);
|
||||
|
||||
// Получение информации о принятых файлах квитанций
|
||||
bool checkNumSentBoxKvitin(tFs *fs,
|
||||
uint8_t *bufReceivedPacket,
|
||||
uint32_t bufReceivedPacketLen,
|
||||
uint32_t numberSender,
|
||||
uint32_t numberMessage,
|
||||
uint32_t dateCreateTransportPacketMon,
|
||||
uint32_t dateCreateTransportPacketDay);
|
||||
|
||||
// Перенос собранного фрагментированного файла в хранилище принятых сообщений inbox
|
||||
tReceiveBuildResult renameFromFrgToInBox(tFs *fs, tGonetsReedSalmon *gonetsReedSalmon, md5a_context *md5ctx, uint32_t idFile, tRtcIO *rtc, char *path_dir_info_fileName,
|
||||
char *path_dir_frag_inbox_fileName, tLoggerInterface *logger);
|
||||
|
||||
|
||||
tReceiveBuildResult
|
||||
renameFromFrgToInBox5555(tFs *fs, tGonetsReedSalmon *gonetsReedSalmon, md5a_context *md5ctx, uint32_t idFile, tRtcIO *rtc,
|
||||
char *path_dir_info_fileName,
|
||||
char *path_dir_frag_inbox_fileName, tLoggerInterface *logger);
|
||||
|
||||
#endif //GONEC_GSM_MODEMRECEIVEFUNC_C_H
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// Created by cfif on 21.04.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_GSM_MODEMSEND_H
|
||||
#define GONEC_GSM_MODEMSEND_H
|
||||
#include "ModemMain.h"
|
||||
|
||||
// Количество файлов
|
||||
int getCountFiles(tModemMain *env, char *path);
|
||||
// Удаление самого старого файла tracert
|
||||
bool delFilesOld(tModemMain *env, char *path);
|
||||
|
||||
void RequestSendMessagesModemSlots(tModemMain *env);
|
||||
void RunStopTaskModem(tModemMain *env);
|
||||
bool getIsSlotsRouting(tModemMain *env);
|
||||
// Удаление файлов трассировки из отправки
|
||||
bool delRepout(tModemMain *env, tTypeFile typeFile, bool isDelFiles, bool isAllFiles);
|
||||
bool ModemMain_CreateOutFiles(tModemMain *env, tTypeFile typeFile, int32_t gr);
|
||||
// Котроль файлов в отправке и приеме
|
||||
void controlFiles(tFs *fs, char *ext, char *path);
|
||||
bool getIsSlotsSos(tModemMain *env);
|
||||
|
||||
bool ToSentFiles(tModemMain *env, tFileSendInfo *fileSendInfo,
|
||||
char *path_dir_rep_fileName,
|
||||
char *path_dir_mask_fileName,
|
||||
char *path_dir_info_fileName);
|
||||
|
||||
#endif //GONEC_GSM_MODEMSEND_H
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
//
|
||||
// Created by cfif on 21.02.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_GSM_MODEMSENDFUNC_H
|
||||
#define GONEC_GSM_MODEMSENDFUNC_H
|
||||
|
||||
#include <SerialPortIO.h>
|
||||
#include <DeviceStorageIni.h>
|
||||
#include <Gnss.h>
|
||||
#include "ModemGonec.h"
|
||||
#include "fs_interface.h"
|
||||
#include "RtcIO.h"
|
||||
#include "ModemGnss.h"
|
||||
#include "httpd_types.h"
|
||||
#include "file_logger.h"
|
||||
#include "stdbool.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "fs_base_func.h"
|
||||
#include "httpd_base_func.h"
|
||||
#include "ModemReceiveFunc.h"
|
||||
#include "GonetsReedSalmon.h"
|
||||
|
||||
// Редактирование файла маски пакета транспортного уровня
|
||||
bool editMaskPacketTransportKvitinCrunch(tFs *fs, uint32_t from, uint32_t lenTransPaket, char *path_mask_fileName,
|
||||
tBufFreeFillState isFill);
|
||||
// Поиск неотправленных блоков в файле маски
|
||||
bool isFindMaskPacketTransportIsNotProc(tFs *fs, bool *isFind, char *path_mask_fileName);
|
||||
|
||||
// Получение имени файла по ид
|
||||
//void createFileNameFromId(char *out_fileName, uint32_t id, uint8_t len_pref, char *ext);
|
||||
|
||||
// Создание имени файла из транспортного пакета
|
||||
//void createFileFragInbox(char *path, uint32_t numberSender, uint32_t dateCreateTransportPacket, uint32_t numberMessage, char t,
|
||||
// char *ext);
|
||||
|
||||
// Создание файлов транспортного уровня
|
||||
//bool createFilesTransport(tFs *fs, tRtcIO *rtcIo, char *path_rep_fileName, tFileInfo *fileInfo, uint32_t *countPacket);
|
||||
|
||||
// Поиск самого срочного сообщения
|
||||
uint32_t getMaxUrgencyOutbox(tFs *fs, tGonetsReedSalmon *gonetsReedSalmon, md5a_context *md5ctx, tRtcIO *rtcIo, char *path, char *out_fileName, char *path_out_fileName, tTypeFile typeFile, tDeviceStorageIni *store, uint32_t gr);
|
||||
|
||||
// Создание файла уровня представления
|
||||
bool createFileRepresentation(tFs *fs, tGonetsReedSalmon *gonetsReedSalmon, md5a_context *md5ctx, tRtcIO *rtcIo, char *path_out_fileName, tFileSendInfo *fileSendInfo, uint32_t gr, uint32_t cuteOffsetBegin);
|
||||
|
||||
|
||||
uint32_t getCountTypeFileInRepout(tFs *fs, tTypeFile typeFile, uint32_t *idInRepout);
|
||||
|
||||
uint32_t getCountTracertInRepoutCute(tFs *fs, uint32_t max);
|
||||
|
||||
uint32_t getOldOut(tFs *fs, char *path, uint32_t *idInRepout, uint32_t countIdInRepout);
|
||||
|
||||
// Создание пакета транспортного уровня
|
||||
bool
|
||||
createPacketTransport(tFs *fs, uint32_t offset, uint8_t *bufSendPacket, bool *isFrom, uint32_t *from, uint32_t *lenTransPaket, tFileSendInfo *fileSendInfo,
|
||||
tRtcIO *rtcIo, char *path_rep_fileName, char *path_mask_fileName);
|
||||
|
||||
// Создание пакета квитанции
|
||||
bool
|
||||
createPacketKvitin(tFs *fs, uint32_t offset, uint8_t *bufSendPacket, bool *isFrom, uint32_t *from,
|
||||
uint32_t *lenTransPaket,
|
||||
tFileSendInfo *fileSendInfo,
|
||||
tRtcIO *rtcIo, char *path_rep_fileName, char *path_mask_fileName);
|
||||
|
||||
// Редактирование файла маски пакета транспортного уровня
|
||||
bool editMaskPacketTransport(tFs *fs, uint32_t from, uint32_t lenTransPaket, char *path_mask_fileName, tBufFreeFillState isFill);
|
||||
|
||||
// Поиск неотправленных блоков в файле маски
|
||||
bool isFindMaskPacketTransport(tFs *fs, bool *isFind, char *path_mask_fileName, tFileSendInfo *fileSendInfo);
|
||||
|
||||
// Перенос файла в хранилище отправленных сообщений sentbox
|
||||
bool renameFromOutBoxToSentBox(tFs *fs, tRtcIO *rtc, tFileSendInfo *fileSendInfo);
|
||||
|
||||
bool readSendFileInfo(tFs *fs, tFileSendInfo *fileSendInfo, char *path_inf_fileName);
|
||||
|
||||
bool writeSendFileInfo(tFs *fs, tFileSendInfo *fileSendInfo, char *path_inf_fileName);
|
||||
|
||||
bool createBufStateFileSend(tFs *fs);
|
||||
|
||||
#endif //GONEC_GSM_MODEMSENDFUNC_H
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// Created by cfif on 16.05.23.
|
||||
//
|
||||
|
||||
#ifndef GONEC_FULL_MODEM_TIMER_H
|
||||
#define GONEC_FULL_MODEM_TIMER_H
|
||||
#include "ModemMain.h"
|
||||
|
||||
typedef struct {
|
||||
tModemMain *modemMain;
|
||||
tSerialPortIO *io;
|
||||
tFileLogger *flog;
|
||||
tLoggerInterface *logger;
|
||||
tGpios *gpios;
|
||||
|
||||
struct {
|
||||
osThreadId_t id;
|
||||
uint32_t stack[2048];
|
||||
StaticTask_t controlBlock;
|
||||
osThreadAttr_t attr;
|
||||
} thread;
|
||||
} tModemTimer;
|
||||
|
||||
extern volatile uint32_t timeModemStuckGetMs;
|
||||
|
||||
void ModemTimer_Init(tModemTimer *env, tModemMain *modemMain, tSerialPortIO *io, tFileLogger *flog, tGpios *gpios);
|
||||
void ModemTimer_StartThread(tModemTimer *env);
|
||||
|
||||
#endif //GONEC_FULL_MODEM_TIMER_H
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
//
|
||||
// Created by cfif on 27.02.23.
|
||||
//
|
||||
#include "ModemAlmanah.h"
|
||||
|
||||
// Инициализация записи файла альманаха
|
||||
bool initWriteAlmanah(tFs *fs) {
|
||||
FRESULT fr;
|
||||
|
||||
fr = f_unlink_i(fs, file_tmp_almhs);
|
||||
}
|
||||
|
||||
// Запись файла альманаха
|
||||
bool writeAlmanah(tModemMain *env) {
|
||||
bool ret;
|
||||
FRESULT fr;
|
||||
|
||||
fr = f_unlink_i(env->fs, file_tmp_almhs);
|
||||
|
||||
FIL file;
|
||||
|
||||
fr = f_open_i(env->fs, &file, (TCHAR *) file_tmp_almhs, FA_WRITE | FA_CREATE_ALWAYS);
|
||||
if (fr) {
|
||||
return false;
|
||||
}
|
||||
|
||||
UINT bytes_written;
|
||||
fr = f_write_i(env->fs, &file, env->bufReceivedPacket, env->bufReceivedPacketLen, &bytes_written);
|
||||
|
||||
f_close_i(env->fs, &file);
|
||||
|
||||
if (osMutexAcquire(env->accessHTTP, TIME_MUTEX_HTTP_ACCESS) == osOK) {
|
||||
fr = f_unlink_i(env->fs, file_cur_almhs);
|
||||
fr = f_rename_i(env->fs, file_tmp_almhs, file_cur_almhs);
|
||||
osMutexRelease(env->accessHTTP);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
almac_load_from_file(env);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
//
|
||||
// Created by cfif on 23.03.2024.
|
||||
//
|
||||
#include "ModemBufCreateHeader.h"
|
||||
|
||||
bool cuteOffset(tFs *fs, char *path, char *bufDumpFile, uint32_t lenBufDumpFile, uint32_t cuteOffsetBegin) {
|
||||
FIL file;
|
||||
FRESULT fr;
|
||||
|
||||
UINT bytes_read;
|
||||
|
||||
fr = f_open_i(fs, &file, (TCHAR *) path, FA_READ);
|
||||
if (fr != FR_OK) return false;
|
||||
|
||||
fr = f_read_i(fs, &file, bufDumpFile, 512, &bytes_read);
|
||||
if (fr != FR_OK) {
|
||||
fr = f_close_i(fs, &file);
|
||||
return false;
|
||||
}
|
||||
|
||||
fr = f_close_i(fs, &file);
|
||||
|
||||
for (uint32_t i = cuteOffsetBegin; i < lenBufDumpFile - 13; ++i) {
|
||||
bufDumpFile[i] = bufDumpFile[i + 13];
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool isTo(char *to, char ch) {
|
||||
|
||||
for (size_t i = 0; i < strlen(to); i++) {
|
||||
if ((to[i] < '0') || (to[i] > '9')) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (strlen(to) > 5)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
@ -0,0 +1,925 @@
|
|||
//
|
||||
// Created by cfif on 08.02.23.
|
||||
//
|
||||
#include "ModemGnss.h"
|
||||
|
||||
const tRegionData regionData[60] = {
|
||||
|
||||
{0, 30, 0, 30},
|
||||
{0, 30, 30, 60},
|
||||
{0, 30, 60, 90},
|
||||
{0, 30, 90, 120},
|
||||
{0, 30, 120, 150},
|
||||
{0, 30, 150, 180},
|
||||
{0, 30, -150, -180},
|
||||
{0, 30, -120, 150},
|
||||
{0, 30, -90, -120},
|
||||
{0, 30, -60, -90},
|
||||
{0, 30, -30, -60},
|
||||
{0, 30, 0, -30},
|
||||
|
||||
{30, 60, 0, 30},
|
||||
{30, 60, 30, 60},
|
||||
{30, 60, 60, 90},
|
||||
{30, 60, 90, 120},
|
||||
{30, 60, 120, 150},
|
||||
{30, 60, 150, 180},
|
||||
{30, 60, -150, -180},
|
||||
{30, 60, -120, -150},
|
||||
{30, 60, -90, -120},
|
||||
{30, 60, -60, -90},
|
||||
{30, 60, -30, -60},
|
||||
{30, 60, 0, -30},
|
||||
|
||||
{60, 90, 0, 60},
|
||||
{60, 90, 60, 120},
|
||||
{60, 90, 120, 180},
|
||||
{60, 90, -120, -180},
|
||||
{60, 90, -60, -120},
|
||||
{60, 90, 0, -60},
|
||||
|
||||
{0, -30, 0, 30},
|
||||
{0, -30, 30, 60},
|
||||
{0, -30, 60, 90},
|
||||
{0, -30, 90, 120},
|
||||
{0, -30, 120, 150},
|
||||
{0, -30, 150, 180},
|
||||
{0, -30, -150, -180},
|
||||
{0, -30, -120, 150},
|
||||
{0, -30, -90, -120},
|
||||
{0, -30, -60, -90},
|
||||
{0, -30, -30, -60},
|
||||
{0, -30, 0, -30},
|
||||
|
||||
{-30, -60, 0, 30},
|
||||
{-30, -60, 30, 60},
|
||||
{-30, -60, 60, 90},
|
||||
{-30, -60, 90, 120},
|
||||
{-30, -60, 120, 150},
|
||||
{-30, -60, 150, 180},
|
||||
{-30, -60, -150, -180},
|
||||
{-30, -60, -120, -150},
|
||||
{-30, -60, -90, -120},
|
||||
{-30, -60, -60, -90},
|
||||
{-30, -60, -30, -60},
|
||||
{-30, -60, 0, -30},
|
||||
|
||||
{-60, -90, 0, 60},
|
||||
{-60, -90, 60, 120},
|
||||
{-60, -90, 120, 180},
|
||||
{-60, -90, -120, -180},
|
||||
{-60, -90, -60, -120},
|
||||
{-60, -90, 0, -60}
|
||||
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
const uint8_t bufFillOperation[2048] = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55,
|
||||
0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55};
|
||||
|
||||
|
||||
const uint8_t bufFreeOperationKV[2048] = {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01};
|
||||
*/
|
||||
|
||||
const uint8_t dumpAlma[] = {239, 93, 4, 161, 4, 0, 155, 0, 0, 1, 16, 5, 166, 248, 13, 2, 23, 144, 22, 103, 12, 115, 245,
|
||||
164, 64, 226, 86, 65, 156, 140, 10, 94, 65, 129, 207, 15, 35, 132, 71, 91, 63, 211, 164, 20,
|
||||
116, 123, 9, 247, 63, 169, 77, 156, 220, 239, 80, 217, 63, 156, 50, 55, 223, 136, 94, 19,
|
||||
64, 48, 186, 188, 57, 0, 43, 187, 64, 206, 34, 142, 99, 25, 38, 19, 63, 96, 95, 232, 15,
|
||||
206, 214, 151, 190, 38, 8, 166, 250, 12, 2, 23, 69, 128, 211, 187, 30, 168, 244, 64, 208,
|
||||
156, 245, 35, 147, 10, 94, 65, 40, 41, 176, 0, 166, 12, 92, 63, 137, 93, 219, 219, 45, 9,
|
||||
247, 63, 141, 179, 233, 8, 224, 102, 219, 63, 190, 48, 153, 42, 24, 133, 20, 64, 144, 244,
|
||||
105, 21, 9, 43, 187, 64, 34, 33, 107, 151, 26, 38, 19, 63, 149, 251, 175, 105, 2, 71, 151,
|
||||
190, 38, 21, 139, 136, 13, 2, 23, 108, 63, 25, 227, 131, 203, 131, 64, 229, 212, 206, 115,
|
||||
125, 10, 94, 65, 209, 173, 215, 244, 160, 160, 100, 63, 188, 60, 157, 43, 74, 9, 247, 63,
|
||||
114, 140, 100, 143, 80, 51, 253, 63, 79, 116, 93, 248, 193, 41, 23, 64, 10, 47, 193, 169,
|
||||
235, 42, 187, 64, 156, 33, 117, 63, 26, 38, 19, 63, 190, 175, 62, 220, 221, 28, 145, 190,
|
||||
38, 22, 139, 136, 13, 2, 23, 9, 107, 99, 236, 228, 31, 166, 64, 235, 198, 187, 222, 145, 10,
|
||||
94, 65, 209, 173, 215, 244, 160, 160, 100, 63, 149, 99, 178, 184, 255, 8, 247, 63, 67, 84,
|
||||
225, 207, 240, 38, 0, 64, 248, 51, 188, 89, 131, 119, 22, 64, 186, 188, 57, 92, 7, 43, 187,
|
||||
64, 46, 32, 87, 71, 27, 38, 19, 63, 19, 9, 6, 64, 24, 254, 145, 190, 38, 23, 139, 136, 12,
|
||||
2, 23, 148, 135, 133, 26, 172, 186, 244, 64, 133, 63, 195, 81, 129, 10, 94, 65, 144, 107,
|
||||
67, 197, 56, 127, 99, 63, 18, 46, 228, 17, 220, 8, 247, 63, 155, 115, 240, 76, 104, 82, 250,
|
||||
63, 33, 90, 43, 218, 28, 183, 23, 64, 231, 29, 167, 232, 240, 42, 187, 64, 58, 31, 67, 247,
|
||||
27, 38, 19, 63, 1, 166, 200, 203, 64, 218, 143, 190, 38, 25, 55, 130, 12, 2, 23, 245, 47,
|
||||
73, 229, 224, 112, 244, 64, 251, 206, 47, 139, 131, 10, 94, 65, 193, 225, 5, 17, 169, 105,
|
||||
87, 63, 213, 175, 116, 62, 60, 11, 247, 63, 161, 16, 1, 135, 80, 165, 228, 63, 63, 168, 139,
|
||||
20, 202, 66, 227, 63, 107, 41, 32, 237, 243, 42, 187, 64, 76, 45, 106, 212, 17, 38, 19, 63,
|
||||
89, 49, 17, 158, 82, 196, 140, 190, 38, 26, 55, 131, 12, 2, 23, 63, 171, 204, 20, 26, 5,
|
||||
245, 64, 211, 106, 72, 22, 127, 10, 94, 65, 157, 42, 223, 51, 18, 161, 65, 63, 178, 157,
|
||||
239, 167, 198, 11, 247, 63, 64, 189, 25, 53, 95, 149, 24, 64, 5, 222, 201, 167, 199, 182,
|
||||
219, 63, 194, 109, 109, 225, 237, 42, 187, 64, 41, 48, 166, 196, 15, 38, 19, 63, 169, 43,
|
||||
138, 220, 109, 133, 178, 190, 38, 27, 42, 24, 12, 2, 23, 209, 144, 241, 40, 187, 251, 244,
|
||||
64, 44, 182, 73, 51, 136, 10, 94, 65, 140, 16, 30, 109, 28, 177, 102, 63, 90, 45, 176, 199,
|
||||
68, 10, 247, 63, 75, 120, 66, 175, 63, 169, 4, 64, 43, 221, 93, 103, 67, 78, 20, 64, 115,
|
||||
247, 57, 62, 250, 42, 187, 64, 25, 39, 232, 75, 22, 38, 19, 63, 157, 104, 123, 19, 119, 180,
|
||||
150, 190, 38, 30, 38, 234, 13, 2, 23, 197, 32, 176, 114, 216, 181, 165, 64, 160, 252, 221,
|
||||
199, 132, 10, 94, 65, 176, 86, 237, 154, 144, 214, 88, 63, 61, 158, 150, 31, 184, 10, 247,
|
||||
63, 193, 114, 132, 12, 228, 201, 24, 64, 160, 136, 69, 12, 59, 44, 16, 64, 11, 208, 182,
|
||||
154, 245, 42, 187, 64, 184, 41, 31, 104, 20, 38, 19, 63, 183, 13, 119, 145, 131, 29, 163,
|
||||
190, 38, 31, 38, 234, 12, 2, 23, 163, 63, 52, 115, 35, 162, 244, 64, 44, 243, 86, 221, 122,
|
||||
10, 94, 65, 3, 36, 154, 64, 17, 139, 88, 63, 118, 140, 43, 46, 142, 10, 247, 63, 133, 94,
|
||||
127, 18, 159, 75, 24, 64, 42, 230, 32, 232, 104, 133, 17, 64, 122, 255, 31, 39, 232, 42,
|
||||
187, 64, 196, 40, 11, 24, 21, 38, 19, 63, 231, 102, 54, 85, 236, 188, 164, 190, 38, 32, 38,
|
||||
234, 13, 2, 23, 18, 133, 150, 117, 255, 248, 116, 64, 57, 236, 190, 189, 114, 10, 94, 65,
|
||||
145, 42, 138, 87, 89, 219, 84, 63, 136, 161, 213, 201, 25, 10, 247, 63, 56, 19, 211, 133,
|
||||
88, 253, 209, 63, 200, 153, 38, 108, 63, 217, 16, 64, 65, 245, 15, 34, 221, 42, 187, 64, 36,
|
||||
38, 212, 251, 22, 38, 19, 63, 151, 179, 206, 12, 141, 18, 154, 190, 38, 33, 5, 125, 12, 2,
|
||||
23, 53, 39, 47, 178, 231, 107, 244, 64, 65, 14, 74, 86, 136, 10, 94, 65, 70, 234, 61, 149,
|
||||
211, 158, 98, 63, 9, 51, 109, 255, 202, 10, 247, 63, 56, 19, 211, 133, 88, 253, 221, 63,
|
||||
221, 233, 206, 19, 207, 249, 20, 64, 189, 114, 189, 109, 250, 42, 187, 64, 245, 41, 36, 60,
|
||||
20, 38, 19, 63, 90, 47, 197, 53, 146, 168, 152, 190, 38, 34, 5, 126, 13, 2, 23, 59, 137, 8,
|
||||
255, 226, 231, 118, 64, 44, 240, 21, 78, 146, 10, 94, 65, 160, 79, 228, 73, 210, 53, 99, 63,
|
||||
141, 12, 114, 23, 97, 10, 247, 63, 115, 45, 90, 128, 182, 213, 227, 63, 88, 144, 102, 44,
|
||||
154, 14, 20, 64, 88, 56, 73, 243, 7, 43, 187, 64, 208, 39, 247, 199, 21, 38, 19, 63, 28, 56,
|
||||
241, 185, 152, 95, 150, 190, 38, 35, 5, 126, 13, 2, 23, 151, 170, 180, 197, 69, 80, 154, 64,
|
||||
165, 47, 132, 161, 138, 10, 94, 65, 244, 106, 128, 210, 80, 163, 96, 63, 158, 9, 77, 18, 75,
|
||||
10, 247, 63, 226, 91, 88, 55, 222, 157, 228, 63, 150, 207, 242, 60, 184, 171, 19, 64, 56,
|
||||
130, 84, 138, 253, 42, 187, 64, 86, 39, 237, 31, 22, 38, 19, 63, 174, 223, 168, 181, 117,
|
||||
106, 148, 190, 38};
|
||||
|
||||
|
||||
|
||||
uint32_t getAlmaSize() {
|
||||
return sizeof(dumpAlma);
|
||||
}
|
||||
|
||||
const uint8_t dump3[] = {
|
||||
0xFB, 0xB5, 0x03, 0x70, 0x17, 0x00, 0x01, 0x70, 0x17, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0xF0, 0x00, 0x9E,
|
||||
|
||||
0xC1, 0x02, 0x18, 0x00, 0x6B, 0xD0, 0xD7, 0x00, 0x00, 0x80,
|
||||
0x01, 0x01, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xB4,
|
||||
0x0D, 0x4B, 0x22, 0xF3, 0xD0, 0x94, 0xD0, 0xBB,
|
||||
0xD1, 0x8F, 0x20, 0xE2, 0x84, 0x96, 0x36, 0x30, 0x30, 0x30, 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00,
|
||||
0x33, 0x3A, 0x32, 0x31, 0x3A, 0x32, 0x32, 0x20, 0xD0,
|
||||
0x9F, 0xD1, 0x80, 0xD0, 0xBE, 0xD0, 0xB2, 0xD0, 0xB5, 0xD1, 0x80, 0xD0, 0xBA, 0xD0, 0xB0, 0x20,
|
||||
0xD0, 0xB4, 0xD0, 0xB8, 0xD1, 0x81, 0xD0, 0xBA, 0xD0,
|
||||
0xB0, 0x0D, 0x0A, 0xD0, 0x94, 0xD0, 0xB8, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xBA, 0xD1, 0x82, 0xD0,
|
||||
0xBE, 0xD1, 0x80, 0xD0, 0xB8, 0xD0, 0xB9, 0x20, 0x4F,
|
||||
0x92, 0x04, 0x6D, 0x87, 0x5A, 0x2A, 0x18, 0xAC, 0x0C, 0x71, 0x8B, 0xAC, 0x0E, 0xFA, 0x95, 0x31,
|
||||
0x32, 0x38, 0x0D, 0x0A, 0xD0, 0xA4, 0xD0, 0xB0, 0xD0,
|
||||
0xB9, 0xD0, 0xBB, 0xD0, 0xBE, 0xD0, 0xB2, 0x20, 0x32, 0x31, 0x30, 0x35, 0x0D, 0x0A, 0xD0, 0x9D,
|
||||
0xD1, 0x83, 0xD0, 0xBB, 0xD0, 0xB5, 0xD0, 0xB2, 0xD1,
|
||||
0x8B, 0xD1, 0x85, 0x20, 0x30, 0x0D, 0x0A, 0xD0, 0x9E, 0xD1, 0x88, 0xD0, 0xB8, 0xD0, 0xB1, 0xD0,
|
||||
0xBE, 0xD0, 0xBA, 0x20, 0x30, 0x0D, 0x0A, 0x50, 0x6F,
|
||||
0x77, 0x65, 0x72, 0x20, 0x6F, 0x6E, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x0D, 0x0A, 0x38, 0x37,
|
||||
0x41, 0x46, 0x20, 0x37, 0x37, 0x34, 0x37, 0x20, 0x33,
|
||||
0x39, 0x41, 0x46, 0x20, 0x36, 0x44, 0x41, 0x31, 0x20, 0x32, 0x43, 0x41, 0x46, 0x20, 0x41, 0x39,
|
||||
0x44, 0x36, 0x20, 0x38, 0x39, 0x30, 0x30, 0x20, 0x33,
|
||||
0x35, 0x45, 0x35, 0x20, 0x44, 0x35, 0x44, 0x45, 0x20, 0x43, 0xFC, 0x10, 0x4B, 0xEC, 0x78, 0xFA,
|
||||
0x07, 0x23, 0xCB, 0xD9, 0x0B, 0x6B, 0x06, 0x1E, 0xAF,
|
||||
0xE0, 0x31, 0x30, 0x38, 0x20, 0x41, 0x31, 0x39, 0x41, 0x20, 0x46, 0x39, 0x41, 0x33, 0x20, 0x30,
|
||||
0x36, 0x33, 0x30, 0x20, 0x33, 0x36, 0x30, 0x34, 0x20,
|
||||
0x30, 0x39, 0x32, 0x45, 0x20, 0x33, 0x46, 0x41, 0x36, 0x20, 0x0D, 0x0A, 0xD0, 0xA4, 0xD0, 0xB0,
|
||||
0xD0, 0xB9, 0xD0, 0xBB, 0x20, 0xD0, 0xBA, 0xD0, 0xBE,
|
||||
0xD0, 0xBD, 0xD1, 0x84, 0xD0, 0xB8, 0xD0, 0xB3, 0xD1, 0x83, 0xD1, 0x80, 0xD0, 0xB0, 0xD1, 0x86,
|
||||
0xD0, 0xB8, 0xD0, 0xB8, 0x20, 0xD0, 0xB7, 0xD0, 0xB0,
|
||||
0xD0, 0xB3, 0xD1, 0x80, 0xD1, 0x83, 0xD0, 0xB6, 0xD0, 0xB5, 0xD0, 0xBD, 0x2E, 0x0D, 0x0A, 0xD0,
|
||||
0x9F, 0xD0, 0xB0, 0xD0, 0xBC, 0xD1, 0x8F, 0xD1, 0x82,
|
||||
0xD1, 0x8C, 0x20, 0xD1, 0x84, 0xD0, 0xBB, 0xD1, 0x8D, 0xD1, 0x88, 0x20, 0x34, 0x30, 0x39, 0x36,
|
||||
0xD0, 0xBA, 0xD0, 0x91, 0x0D, 0xA5, 0xBC, 0x09, 0x15,
|
||||
0x9A, 0x4A, 0x74, 0x5E, 0x92, 0x31, 0x69, 0x30, 0x20, 0x93, 0xF4, 0xE0, 0x0A, 0xD0, 0x90, 0xD0,
|
||||
0xA2, 0x3A, 0x20, 0x36, 0x31, 0x34, 0x31, 0x20, 0x20,
|
||||
0x20, 0x76, 0x65, 0x72, 0x3A, 0x20, 0x20, 0x4E, 0x6F, 0x76, 0x20, 0x33, 0x30, 0x20, 0x32, 0x30,
|
||||
0x31, 0x37, 0x20, 0x31, 0x38, 0x3A, 0x31, 0x38, 0x3A,
|
||||
0x30, 0x31, 0x0D, 0x0A, 0x76, 0x50, 0x3A, 0x20, 0x30, 0x6D, 0x56, 0x0D, 0x0A, 0x31, 0x33, 0x3A,
|
||||
0x32, 0x31, 0x3A, 0x32, 0x32, 0x20, 0x42, 0x41, 0x54,
|
||||
0x2E, 0xD0, 0x9D, 0xD0, 0xB5, 0xD1, 0x82, 0x20, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0, 0xB8,
|
||||
0xD0, 0xBC, 0xD0, 0xB0, 0x20, 0xD0, 0xB1, 0xD0, 0xB0,
|
||||
0xD1, 0x82, 0xD0, 0xB0, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xB8, 0x2E, 0x0D, 0x0A, 0xD0, 0xA2, 0xD0,
|
||||
0xB5, 0xD1, 0x81, 0xD1, 0x82, 0x20, 0xD0, 0xBF, 0xD1,
|
||||
0x80, 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC, 0xF5, 0x9A, 0xD0, 0xCC, 0x55, 0xF5, 0x3D, 0x77, 0x5D,
|
||||
0x19, 0xF0, 0x19, 0x64, 0xF7, 0x4A, 0x69, 0xD0, 0xBD,
|
||||
0xD0, 0xB8, 0xD0, 0xBA, 0xD0, 0xB0, 0x0D, 0x0A, 0xD0, 0xA1, 0xD1, 0x82, 0xD0, 0xB0, 0xD1, 0x80,
|
||||
0xD1, 0x82, 0x20, 0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xB8,
|
||||
0xD0, 0xB5, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xB8, 0xD0, 0xBA, 0xD0, 0xB0, 0x0D, 0x0A, 0x31, 0x33,
|
||||
0x3A, 0x32, 0x31, 0x3A, 0x32, 0x36, 0x20, 0x52, 0x53,
|
||||
0x53, 0x49, 0x3A, 0x20, 0x2D, 0x31, 0x30, 0x31, 0x0D, 0x0A, 0xD0, 0x9E, 0xD0, 0xBF, 0xD1, 0x80,
|
||||
0xD0, 0xB5, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xBB, 0xD0,
|
||||
0xB5, 0xD0, 0xBD, 0x20, 0xD0, 0xB3, 0xD0, 0xB5, 0xD0, 0xBE, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xB3,
|
||||
0xD0, 0xB8, 0xD0, 0xBE, 0xD0, 0xBD, 0x20, 0x31, 0x34,
|
||||
0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x30, 0x39, 0x20, 0x4D, 0xD0, 0xA1, 0x31, 0xD0,
|
||||
0xBE, 0xD1, 0x3D, 0xDF, 0x32, 0x44, 0xE5, 0xAC, 0x88,
|
||||
0x79, 0x05, 0x71, 0x1B, 0xBF, 0x34, 0x0F, 0x20, 0x6F, 0x81, 0xD0, 0xBD, 0x20, 0xD0, 0x9A, 0xD0,
|
||||
0x90, 0x3D, 0x33, 0x30, 0x20, 0xD0, 0xB4, 0xD0, 0xBE,
|
||||
0x20, 0xD0, 0x9A, 0xD0, 0x90, 0x3D, 0x31, 0x37, 0x31, 0x38, 0xD0, 0xBA, 0xD0, 0xBC, 0x20, 0x74,
|
||||
0x3A, 0x31, 0x39, 0x2E, 0x36, 0x32, 0x35, 0x0D, 0x0A,
|
||||
0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x30, 0x39, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x72, 0x47, 0x53,
|
||||
0x4D, 0x3A, 0x20, 0x30, 0x20, 0x72, 0x65, 0x73, 0x3A,
|
||||
0x20, 0x30, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x30, 0x39, 0x20, 0xD0, 0x95, 0xD1,
|
||||
0x81, 0xD1, 0x82, 0xD1, 0x8C, 0x20, 0xD0, 0xBA, 0xD0,
|
||||
0xBE, 0xD0, 0xBE, 0xD1, 0x80, 0xD0, 0xB4, 0xD0, 0xB8, 0xD0, 0xBD, 0xD0, 0xB0, 0xD1, 0x82, 0xD1,
|
||||
0x8B, 0x20, 0xD0, 0xBD, 0xD0, 0xB0, 0x20, 0xD0, 0xBE,
|
||||
0xD1, 0x82, 0xD0, 0xBF, 0xC0, 0x83, 0x38, 0x42, 0x64, 0xF6, 0x23, 0x1C, 0x02, 0xEA, 0x8E, 0xE7,
|
||||
0x69, 0x55, 0x10, 0x98, 0xD1, 0x80, 0xD0, 0xB0, 0xD0,
|
||||
0xB2, 0xD0, 0xBA, 0xD1, 0x83, 0x0D, 0x0A, 0x44, 0x6F, 0x70, 0x70, 0x6C, 0x65, 0x72, 0x3A, 0x20,
|
||||
0x31, 0x36, 0x32, 0x34, 0x20, 0x48, 0x7A, 0x2E, 0x20,
|
||||
0x4E, 0x6F, 0x69, 0x73, 0x65, 0x3A, 0x20, 0x36, 0x32, 0x28, 0x31, 0x33, 0x29, 0x2C, 0x32, 0x30,
|
||||
0x33, 0x28, 0x39, 0x29, 0x2C, 0x31, 0x34, 0x33, 0x28,
|
||||
0x31, 0x31, 0x29, 0x2C, 0x31, 0x37, 0x33, 0x28, 0x39, 0x29, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34,
|
||||
0x37, 0x3A, 0x30, 0x39, 0x20, 0xD0, 0x97, 0xD0, 0xB0,
|
||||
0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xBE, 0xD1, 0x81, 0x20, 0xD0, 0xBD, 0xD0, 0xB0, 0x20, 0xD0, 0xB7,
|
||||
0xD0, 0xB0, 0xD0, 0xBF, 0xD0, 0xB8, 0xD1, 0x81, 0xD1,
|
||||
0x8C, 0x20, 0x46, 0xD0, 0xBF, 0xD0, 0xBA, 0x3D, 0x32, 0x31, 0x37, 0x20, 0xD0, 0xA1, 0xD0, 0x9B,
|
||||
0xA2, 0xA6, 0x96, 0x6B, 0x72, 0x48, 0x96, 0xF9, 0xED,
|
||||
0x47, 0x37, 0x16, 0x3F, 0x8B, 0xC2, 0x98, 0x3D, 0x36, 0x36, 0x20, 0xD0, 0xA0, 0xD0, 0x97, 0x3D,
|
||||
0x35, 0x35, 0x39, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34,
|
||||
0x37, 0x3A, 0x31, 0x32, 0x20, 0xD0, 0x92, 0xD1, 0x8B, 0xD0, 0xB4, 0xD0, 0xB0, 0xD1, 0x87, 0xD0,
|
||||
0xB0, 0x20, 0xD0, 0xBF, 0xD0, 0xBE, 0xD1, 0x81, 0xD1,
|
||||
0x8B, 0xD0, 0xBB, 0xD0, 0xBA, 0xD0, 0xB8, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x31,
|
||||
0x32, 0x20, 0xD0, 0x9A, 0xD0, 0x91, 0xD0, 0x9E, 0xD0,
|
||||
0x9A, 0x20, 0xD1, 0x81, 0xD0, 0xB8, 0xD0, 0xBD, 0xD1, 0x85, 0xD1, 0x80, 0xD0, 0xBE, 0xD0, 0xBF,
|
||||
0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x8B, 0xD0, 0xBB, 0xD0,
|
||||
0xBA, 0xD0, 0xB0, 0x20, 0xD0, 0xA1, 0xD0, 0x98, 0x3D, 0x36, 0x39, 0x43, 0x81, 0xA2, 0xBB, 0xA8,
|
||||
0xF9, 0x12, 0xAF, 0x65, 0x1C, 0x8C, 0x88, 0x33, 0x6E,
|
||||
0x6A, 0x52, 0x86, 0xFC, 0xA3, 0x6C, 0xC2, 0x8D, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
};
|
||||
|
||||
|
||||
const uint8_t dump2[] = {0xFB, 0xDA, 0x00, 0x70, 0x17, 0x00, 0x01, 0x70, 0x17, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE7,
|
||||
0x00, 0xB9, 0xC1, 0x02, 0x18, 0x00, 0x6E, 0xD4, 0xD7,
|
||||
0x00, 0x00, 0x80, 0x01, 0x01, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0xF3, 0x84, 0x3D, 0x32,
|
||||
0x9D, 0xD0, 0x92, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xBC,
|
||||
0xD1, 0x8F, 0x20, 0x31, 0x34, 0x2D, 0x30, 0x33, 0x2D, 0x32, 0x33, 0x20, 0x31, 0x31, 0x3A, 0x33,
|
||||
0x38, 0x3A, 0x34, 0x35, 0x3C, 0x64, 0x69, 0x76, 0x3E,
|
||||
0x26, 0x6E, 0x62, 0x73, 0x70, 0x3B, 0xD0, 0x9E, 0xD1, 0x82, 0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xB0,
|
||||
0xD0, 0xB2, 0xD0, 0xBA, 0xD0, 0xB0, 0x20, 0xD0, 0xA2,
|
||||
0xD0, 0xB5, 0xD0, 0xBA, 0xD1, 0x81, 0xD1, 0x82, 0xD0, 0xBE, 0xD0, 0xB2, 0xD0, 0xBE, 0xD0, 0xB3,
|
||||
0xD0, 0xBE, 0x20, 0xD1, 0x81, 0xD0, 0xBE, 0xD0, 0xBE,
|
||||
0xD0, 0xB1, 0xD1, 0x89, 0xD0, 0xB5, 0xD0, 0xBD, 0xD0, 0xB8, 0xD1, 0x8F, 0x20, 0xD0, 0xBE, 0xD1,
|
||||
0x82, 0x20, 0xD0, 0x90, 0xD0, 0xA2, 0x20, 0xE2, 0x84,
|
||||
0x96, 0x36, 0x31, 0x34, 0x36, 0x20, 0xD0, 0xBD, 0xD0, 0xB0, 0x20, 0xD0, 0x90, 0xD0, 0xA2, 0x20,
|
||||
0xE2, 0x84, 0x96, 0x36, 0x30, 0x30, 0x30, 0x20, 0xD0,
|
||||
0xB2, 0x20, 0xD0, 0xBF, 0xD1, 0x80, 0xD1, 0x8F, 0xD0, 0xBC, 0xD0, 0xBE, 0xD0, 0xB9, 0x20, 0xD0,
|
||||
0xB0, 0xD0, 0xB4, 0xD1, 0x80, 0xD0, 0xB5, 0xD1, 0x81,
|
||||
0xD0, 0xB0, 0xD1, 0x86, 0xD0, 0xB8, 0xD0, 0xB8, 0x3C, 0x2F, 0x64, 0x69, 0x76, 0x3E, 0x31, 0xC4,
|
||||
0x21, 0x49, 0x1A, 0x73, 0x81, 0x56, 0xE0, 0x2C, 0x7B,
|
||||
0xED, 0xA7, 0x21, 0x24, 0x23, 0x75, 0x1F, 0xC8, 0x46, 0xE0, 0x4A, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
|
||||
const uint8_t dump[] = {0x1A, 0x01, 0x37, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x8C, 0xCE, 0x4E, 0x1D,
|
||||
0x0D, 0xF5, 0xE1, 0xCB, 0xEA, 0x3C, 0x82, 0xFF, 0xA1,
|
||||
0x4D, 0x8B, 0x8E, 0xF4, 0xFB, 0xB5, 0x03, 0x70, 0x17, 0x00, 0x01, 0x70, 0x17, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0xF0, 0x00, 0x9E, 0xC1, 0x02, 0x18,
|
||||
0x00, 0x6B, 0xD0, 0xD7, 0x00, 0x00, 0x80, 0x01, 0x01, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||
0xB4, 0x0D, 0x4B, 0x22, 0xF3, 0xD0, 0x94, 0xD0, 0xBB,
|
||||
0xD1, 0x8F, 0x20, 0xE2, 0x84, 0x96, 0x36, 0x30, 0x30, 0x30, 0x2E, 0x74, 0x78, 0x74, 0x00, 0x00,
|
||||
0x33, 0x3A, 0x32, 0x31, 0x3A, 0x32, 0x32, 0x20, 0xD0,
|
||||
0x9F, 0xD1, 0x80, 0xD0, 0xBE, 0xD0, 0xB2, 0xD0, 0xB5, 0xD1, 0x80, 0xD0, 0xBA, 0xD0, 0xB0, 0x20,
|
||||
0xD0, 0xB4, 0xD0, 0xB8, 0xD1, 0x81, 0xD0, 0xBA, 0xD0,
|
||||
0xB0, 0x0D, 0x0A, 0xD0, 0x94, 0xD0, 0xB8, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xBA, 0xD1, 0x82, 0xD0,
|
||||
0xBE, 0xD1, 0x80, 0xD0, 0xB8, 0xD0, 0xB9, 0x20, 0x4F,
|
||||
0x92, 0x04, 0x6D, 0x87, 0x5A, 0x2A, 0x18, 0xAC, 0x0C, 0x71, 0x8B, 0xAC, 0x0E, 0xFA, 0x95, 0x31,
|
||||
0x32, 0x38, 0x0D, 0x0A, 0xD0, 0xA4, 0xD0, 0xB0, 0xD0,
|
||||
0xB9, 0xD0, 0xBB, 0xD0, 0xBE, 0xD0, 0xB2, 0x20, 0x32, 0x31, 0x30, 0x35, 0x0D, 0x0A, 0xD0, 0x9D,
|
||||
0xD1, 0x83, 0xD0, 0xBB, 0xD0, 0xB5, 0xD0, 0xB2, 0xD1,
|
||||
0x8B, 0xD1, 0x85, 0x20, 0x30, 0x0D, 0x0A, 0xD0, 0x9E, 0xD1, 0x88, 0xD0, 0xB8, 0xD0, 0xB1, 0xD0,
|
||||
0xBE, 0xD0, 0xBA, 0x20, 0x30, 0x0D, 0x0A, 0x50, 0x6F,
|
||||
0x77, 0x65, 0x72, 0x20, 0x6F, 0x6E, 0x20, 0x72, 0x65, 0x73, 0x65, 0x74, 0x0D, 0x0A, 0x38, 0x37,
|
||||
0x41, 0x46, 0x20, 0x37, 0x37, 0x34, 0x37, 0x20, 0x33,
|
||||
0x39, 0x41, 0x46, 0x20, 0x36, 0x44, 0x41, 0x31, 0x20, 0x32, 0x43, 0x41, 0x46, 0x20, 0x41, 0x39,
|
||||
0x44, 0x36, 0x20, 0x38, 0x39, 0x30, 0x30, 0x20, 0x33,
|
||||
0x35, 0x45, 0x35, 0x20, 0x44, 0x35, 0x44, 0x45, 0x20, 0x43, 0xFC, 0x10, 0x4B, 0xEC, 0x78, 0xFA,
|
||||
0x07, 0x23, 0xCB, 0xD9, 0x0B, 0x6B, 0x06, 0x1E, 0xAF,
|
||||
0xE0, 0x31, 0x30, 0x38, 0x20, 0x41, 0x31, 0x39, 0x41, 0x20, 0x46, 0x39, 0x41, 0x33, 0x20, 0x30,
|
||||
0x36, 0x33, 0x30, 0x20, 0x33, 0x36, 0x30, 0x34, 0x20,
|
||||
0x30, 0x39, 0x32, 0x45, 0x20, 0x33, 0x46, 0x41, 0x36, 0x20, 0x0D, 0x0A, 0xD0, 0xA4, 0xD0, 0xB0,
|
||||
0xD0, 0xB9, 0xD0, 0xBB, 0x20, 0xD0, 0xBA, 0xD0, 0xBE,
|
||||
0xD0, 0xBD, 0xD1, 0x84, 0xD0, 0xB8, 0xD0, 0xB3, 0xD1, 0x83, 0xD1, 0x80, 0xD0, 0xB0, 0xD1, 0x86,
|
||||
0xD0, 0xB8, 0xD0, 0xB8, 0x20, 0xD0, 0xB7, 0xD0, 0xB0,
|
||||
0xD0, 0xB3, 0xD1, 0x80, 0xD1, 0x83, 0xD0, 0xB6, 0xD0, 0xB5, 0xD0, 0xBD, 0x2E, 0x0D, 0x0A, 0xD0,
|
||||
0x9F, 0xD0, 0xB0, 0xD0, 0xBC, 0xD1, 0x8F, 0xD1, 0x82,
|
||||
0xD1, 0x8C, 0x20, 0xD1, 0x84, 0xD0, 0xBB, 0xD1, 0x8D, 0xD1, 0x88, 0x20, 0x34, 0x30, 0x39, 0x36,
|
||||
0xD0, 0xBA, 0xD0, 0x91, 0x0D, 0xA5, 0xBC, 0x09, 0x15,
|
||||
0x9A, 0x4A, 0x74, 0x5E, 0x92, 0x31, 0x69, 0x30, 0x20, 0x93, 0xF4, 0xE0, 0x0A, 0xD0, 0x90, 0xD0,
|
||||
0xA2, 0x3A, 0x20, 0x36, 0x31, 0x34, 0x31, 0x20, 0x20,
|
||||
0x20, 0x76, 0x65, 0x72, 0x3A, 0x20, 0x20, 0x4E, 0x6F, 0x76, 0x20, 0x33, 0x30, 0x20, 0x32, 0x30,
|
||||
0x31, 0x37, 0x20, 0x31, 0x38, 0x3A, 0x31, 0x38, 0x3A,
|
||||
0x30, 0x31, 0x0D, 0x0A, 0x76, 0x50, 0x3A, 0x20, 0x30, 0x6D, 0x56, 0x0D, 0x0A, 0x31, 0x33, 0x3A,
|
||||
0x32, 0x31, 0x3A, 0x32, 0x32, 0x20, 0x42, 0x41, 0x54,
|
||||
0x2E, 0xD0, 0x9D, 0xD0, 0xB5, 0xD1, 0x82, 0x20, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0, 0xB8,
|
||||
0xD0, 0xBC, 0xD0, 0xB0, 0x20, 0xD0, 0xB1, 0xD0, 0xB0,
|
||||
0xD1, 0x82, 0xD0, 0xB0, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xB8, 0x2E, 0x0D, 0x0A, 0xD0, 0xA2, 0xD0,
|
||||
0xB5, 0xD1, 0x81, 0xD1, 0x82, 0x20, 0xD0, 0xBF, 0xD1,
|
||||
0x80, 0xD0, 0xB8, 0xD0, 0xB5, 0xD0, 0xBC, 0xF5, 0x9A, 0xD0, 0xCC, 0x55, 0xF5, 0x3D, 0x77, 0x5D,
|
||||
0x19, 0xF0, 0x19, 0x64, 0xF7, 0x4A, 0x69, 0xD0, 0xBD,
|
||||
0xD0, 0xB8, 0xD0, 0xBA, 0xD0, 0xB0, 0x0D, 0x0A, 0xD0, 0xA1, 0xD1, 0x82, 0xD0, 0xB0, 0xD1, 0x80,
|
||||
0xD1, 0x82, 0x20, 0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xB8,
|
||||
0xD0, 0xB5, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xB8, 0xD0, 0xBA, 0xD0, 0xB0, 0x0D, 0x0A, 0x31, 0x33,
|
||||
0x3A, 0x32, 0x31, 0x3A, 0x32, 0x36, 0x20, 0x52, 0x53,
|
||||
0x53, 0x49, 0x3A, 0x20, 0x2D, 0x31, 0x30, 0x31, 0x0D, 0x0A, 0xD0, 0x9E, 0xD0, 0xBF, 0xD1, 0x80,
|
||||
0xD0, 0xB5, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xBB, 0xD0,
|
||||
0xB5, 0xD0, 0xBD, 0x20, 0xD0, 0xB3, 0xD0, 0xB5, 0xD0, 0xBE, 0xD1, 0x80, 0xD0, 0xB5, 0xD0, 0xB3,
|
||||
0xD0, 0xB8, 0xD0, 0xBE, 0xD0, 0xBD, 0x20, 0x31, 0x34,
|
||||
0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x30, 0x39, 0x20, 0x4D, 0xD0, 0xA1, 0x31, 0xD0,
|
||||
0xBE, 0xD1, 0x3D, 0xDF, 0x32, 0x44, 0xE5, 0xAC, 0x88,
|
||||
0x79, 0x05, 0x71, 0x1B, 0xBF, 0x34, 0x0F, 0x20, 0x6F, 0x81, 0xD0, 0xBD, 0x20, 0xD0, 0x9A, 0xD0,
|
||||
0x90, 0x3D, 0x33, 0x30, 0x20, 0xD0, 0xB4, 0xD0, 0xBE,
|
||||
0x20, 0xD0, 0x9A, 0xD0, 0x90, 0x3D, 0x31, 0x37, 0x31, 0x38, 0xD0, 0xBA, 0xD0, 0xBC, 0x20, 0x74,
|
||||
0x3A, 0x31, 0x39, 0x2E, 0x36, 0x32, 0x35, 0x0D, 0x0A,
|
||||
0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x30, 0x39, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x72, 0x47, 0x53,
|
||||
0x4D, 0x3A, 0x20, 0x30, 0x20, 0x72, 0x65, 0x73, 0x3A,
|
||||
0x20, 0x30, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x30, 0x39, 0x20, 0xD0, 0x95, 0xD1,
|
||||
0x81, 0xD1, 0x82, 0xD1, 0x8C, 0x20, 0xD0, 0xBA, 0xD0,
|
||||
0xBE, 0xD0, 0xBE, 0xD1, 0x80, 0xD0, 0xB4, 0xD0, 0xB8, 0xD0, 0xBD, 0xD0, 0xB0, 0xD1, 0x82, 0xD1,
|
||||
0x8B, 0x20, 0xD0, 0xBD, 0xD0, 0xB0, 0x20, 0xD0, 0xBE,
|
||||
0xD1, 0x82, 0xD0, 0xBF, 0xC0, 0x83, 0x38, 0x42, 0x64, 0xF6, 0x23, 0x1C, 0x02, 0xEA, 0x8E, 0xE7,
|
||||
0x69, 0x55, 0x10, 0x98, 0xD1, 0x80, 0xD0, 0xB0, 0xD0,
|
||||
0xB2, 0xD0, 0xBA, 0xD1, 0x83, 0x0D, 0x0A, 0x44, 0x6F, 0x70, 0x70, 0x6C, 0x65, 0x72, 0x3A, 0x20,
|
||||
0x31, 0x36, 0x32, 0x34, 0x20, 0x48, 0x7A, 0x2E, 0x20,
|
||||
0x4E, 0x6F, 0x69, 0x73, 0x65, 0x3A, 0x20, 0x36, 0x32, 0x28, 0x31, 0x33, 0x29, 0x2C, 0x32, 0x30,
|
||||
0x33, 0x28, 0x39, 0x29, 0x2C, 0x31, 0x34, 0x33, 0x28,
|
||||
0x31, 0x31, 0x29, 0x2C, 0x31, 0x37, 0x33, 0x28, 0x39, 0x29, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34,
|
||||
0x37, 0x3A, 0x30, 0x39, 0x20, 0xD0, 0x97, 0xD0, 0xB0,
|
||||
0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xBE, 0xD1, 0x81, 0x20, 0xD0, 0xBD, 0xD0, 0xB0, 0x20, 0xD0, 0xB7,
|
||||
0xD0, 0xB0, 0xD0, 0xBF, 0xD0, 0xB8, 0xD1, 0x81, 0xD1,
|
||||
0x8C, 0x20, 0x46, 0xD0, 0xBF, 0xD0, 0xBA, 0x3D, 0x32, 0x31, 0x37, 0x20, 0xD0, 0xA1, 0xD0, 0x9B,
|
||||
0xA2, 0xA6, 0x96, 0x6B, 0x72, 0x48, 0x96, 0xF9, 0xED,
|
||||
0x47, 0x37, 0x16, 0x3F, 0x8B, 0xC2, 0x98, 0x3D, 0x36, 0x36, 0x20, 0xD0, 0xA0, 0xD0, 0x97, 0x3D,
|
||||
0x35, 0x35, 0x39, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34,
|
||||
0x37, 0x3A, 0x31, 0x32, 0x20, 0xD0, 0x92, 0xD1, 0x8B, 0xD0, 0xB4, 0xD0, 0xB0, 0xD1, 0x87, 0xD0,
|
||||
0xB0, 0x20, 0xD0, 0xBF, 0xD0, 0xBE, 0xD1, 0x81, 0xD1,
|
||||
0x8B, 0xD0, 0xBB, 0xD0, 0xBA, 0xD0, 0xB8, 0x0D, 0x0A, 0x31, 0x34, 0x3A, 0x34, 0x37, 0x3A, 0x31,
|
||||
0x32, 0x20, 0xD0, 0x9A, 0xD0, 0x91, 0xD0, 0x9E, 0xD0,
|
||||
0x9A, 0x20, 0xD1, 0x81, 0xD0, 0xB8, 0xD0, 0xBD, 0xD1, 0x85, 0xD1, 0x80, 0xD0, 0xBE, 0xD0, 0xBF,
|
||||
0xD0, 0xBE, 0xD1, 0x81, 0xD1, 0x8B, 0xD0, 0xBB, 0xD0,
|
||||
0xBA, 0xD0, 0xB0, 0x20, 0xD0, 0xA1, 0xD0, 0x98, 0x3D, 0x36, 0x39, 0x43, 0x81, 0xA2, 0xBB, 0xA8,
|
||||
0xF9, 0x12, 0xAF, 0x65, 0x1C, 0x8C, 0x88, 0x33, 0x6E,
|
||||
0x6A, 0x52, 0x86, 0xFC, 0xA3, 0x6C, 0xC2, 0x8D, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
//
|
||||
// Created by cfif on 18.02.23.
|
||||
//
|
||||
|
||||
#include <stddef.h>
|
||||
#include <SystemDelayInterface.h>
|
||||
#include <ModemMain.h>
|
||||
#include <CmsisRtosThreadUtils.h>
|
||||
#include "SerialPort.h"
|
||||
#include "stdlib.h"
|
||||
#include "string.h"
|
||||
#include "httpd_types.h"
|
||||
#include "httpd_base_func.h"
|
||||
#include "fs_base_func.h"
|
||||
#include "math.h"
|
||||
#include "fs_base_func.h"
|
||||
#include "file_logger.h"
|
||||
#include "ModemLog.h"
|
||||
|
||||
/*
|
||||
void GsmWithGnss_Urc(tModemMainLog *env, tAtBuffer *buff) {
|
||||
|
||||
if (buff->data[0] == '\r')
|
||||
return;
|
||||
|
||||
LoggerInfoRaw(LOGGER, LOG_SIGN, buff->data, buff->len);
|
||||
}
|
||||
*/
|
||||
void ModemMainLog_Init(
|
||||
tModemMainLog *env,
|
||||
tDeviceStorageIni *store,
|
||||
tSerialPortIO *io,
|
||||
tRtcIO *rtcIO,
|
||||
tFs *fs,
|
||||
osMutexId_t access_log
|
||||
) {
|
||||
|
||||
env->io = io;
|
||||
env->fs = fs;
|
||||
env->rtcIO = rtcIO;
|
||||
env->access = access_log;
|
||||
env->store = store;
|
||||
|
||||
env->timestampWriteFileLogger = 0;
|
||||
|
||||
// AtCmdInit(
|
||||
// &env->modemAt, io,
|
||||
// env->mem.modemTx, sizeof(env->mem.modemTx),
|
||||
// env->mem.modemRx, sizeof(env->mem.modemRx),
|
||||
// 1000, 1000
|
||||
// );
|
||||
|
||||
// AtCmdSetUrcProcessor(&env->modemAt, env, GsmWithGnss_Urc);
|
||||
|
||||
//Инициализируем главный поток
|
||||
InitThreadAtrStatic(&env->thread.attr, "ModemMainLog", env->thread.controlBlock, env->thread.stack, osPriorityNormal);
|
||||
env->thread.id = 0;
|
||||
}
|
||||
|
||||
uint32_t getStateWriteLog2(tModemMainLog *env) {
|
||||
return env->timestampWriteFileLogger;
|
||||
}
|
||||
|
||||
static uint16_t FileLoggerRaw_Write(tModemMainLog *env, uint32_t size) {
|
||||
|
||||
FIL file;
|
||||
FRESULT fr;
|
||||
|
||||
if (osMutexAcquire(env->access, 8000) == osOK) {
|
||||
|
||||
env->filename[0] = '\0';
|
||||
strcat(env->filename, dir_logs2);
|
||||
|
||||
|
||||
time_t timestamp;
|
||||
env->rtcIO->get(env->rtcIO, ×tamp);
|
||||
timestamp += env->store->nvm.Settings_General.GMTcorr_v * 3600;
|
||||
|
||||
struct tm timestampTM;
|
||||
localtime_r(×tamp, ×tampTM);
|
||||
|
||||
|
||||
strftime(env->buf, sizeof(env->buf), "%d-%m-%y.LOG", ×tampTM);
|
||||
strcat(env->filename, env->buf);
|
||||
|
||||
fr = f_open_i(env->fs, &file, (TCHAR *) env->filename, FA_WRITE | FA_OPEN_APPEND);
|
||||
|
||||
if (fr) {
|
||||
osMutexRelease(env->access);
|
||||
return 0;
|
||||
}
|
||||
|
||||
UINT bytes_written;
|
||||
fr = f_write_i(env->fs, &file, env->bufLog, size, &bytes_written);
|
||||
|
||||
if (fr) {
|
||||
f_close_i(env->fs, &file);
|
||||
osMutexRelease(env->access);
|
||||
return 0;
|
||||
}
|
||||
|
||||
fr = f_close_i(env->fs, &file);
|
||||
if (fr) {
|
||||
osMutexRelease(env->access);
|
||||
return 0;
|
||||
}
|
||||
|
||||
osMutexRelease(env->access);
|
||||
|
||||
return bytes_written;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static _Noreturn void ModemMainLog_Thread(tModemMainLog *env) {
|
||||
|
||||
for (;;) {
|
||||
|
||||
/*
|
||||
if (AtCmdReceiveNextLine(&env->modemAt, 0xffff) == AT_OK) {
|
||||
if (AtCmdRxBeginWithStatic(&env->modemAt, "#RSSI")) {
|
||||
AtCmdRxClear(&env->modemAt);
|
||||
} else {
|
||||
AtCmdProcessUnresolvedLine(&env->modemAt);
|
||||
AtCmdRxClear(&env->modemAt);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
uint16_t len = SerialPortReceive(env->io, env->bufLog, sizeof(env->bufLog), 500);
|
||||
|
||||
if (len > 0) {
|
||||
FileLoggerRaw_Write(env, len);
|
||||
env->rtcIO->get(env->rtcIO, &env->timestampWriteFileLogger);
|
||||
}
|
||||
|
||||
//LoggerInfo(LOGGER, LOG_SIGN, (char *)env->bufLog, len);
|
||||
|
||||
//uint8_t data[512];
|
||||
//uint16_t len = SerialPortReceive(env->io, data, sizeof(data), 2000);
|
||||
//LoggerInfoRaw(LOGGER, LOG_SIGN, (char *)data, len);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ModemMainLog_StartThread(tModemMainLog *env) {
|
||||
if (!env->thread.id) {
|
||||
env->thread.id = osThreadNew((osThreadFunc_t) (ModemMainLog_Thread), (void *) (env), &env->thread.attr);
|
||||
} else {
|
||||
osThreadResume(env->thread.id);
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,61 @@
|
|||
//
|
||||
// Created by cfif on 16.05.23.
|
||||
//
|
||||
#include "Modem_Timer.h"
|
||||
#include "CmsisRtosThreadUtils.h"
|
||||
|
||||
#define LOGGER env->logger
|
||||
#define LOG_SIGN "GONEC"
|
||||
|
||||
void ModemTimer_Init(tModemTimer *env, tModemMain *modemMain, tSerialPortIO *io, tFileLogger *flog, tGpios *gpios) {
|
||||
|
||||
env->modemMain = modemMain;
|
||||
env->io = io;
|
||||
env->flog = flog;
|
||||
env->gpios = gpios;
|
||||
|
||||
InitThreadAtrStatic(&env->thread.attr, "ModemTimer", env->thread.controlBlock, env->thread.stack, osPriorityHigh);
|
||||
env->thread.id = 0;
|
||||
}
|
||||
|
||||
extern volatile uint32_t timeModemStuckGetMs;
|
||||
|
||||
static _Noreturn void ModemTimer_Thread(tModemTimer *env) {
|
||||
uint8_t data[] = {'A', 'T', '\r', '\n'};
|
||||
|
||||
|
||||
|
||||
for (;;) {
|
||||
|
||||
if (env->modemMain->location.isOneDateTime == false) {
|
||||
|
||||
uint32_t dlStuckGetMs = SystemGetMs() - timeModemStuckGetMs;
|
||||
|
||||
|
||||
// Если завис больше 30 секунд
|
||||
if (dlStuckGetMs > 30000) {
|
||||
GpioPinSet(&env->gpios->Power.gonec_reset, false);
|
||||
SystemDelayMs(1000);
|
||||
GpioPinSet(&env->gpios->Power.gonec_reset, true);
|
||||
SystemDelayMs(6000);
|
||||
|
||||
timeModemStuckGetMs = SystemGetMs();
|
||||
LoggerInfoStatic(LOGGER, LOG_SIGN, "Контроль задачи модема");
|
||||
|
||||
SerialPortTransmit(env->io, data, 4, 1000);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SystemDelayMs(1000);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void ModemTimer_StartThread(tModemTimer *env) {
|
||||
if (!env->thread.id) {
|
||||
env->thread.id = osThreadNew((osThreadFunc_t) (ModemTimer_Thread), (void *) (env), &env->thread.attr);
|
||||
} else {
|
||||
osThreadResume(env->thread.id);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"dep": [
|
||||
{
|
||||
"type": "git",
|
||||
"provider": "GONEC_NEW",
|
||||
"repo": "GONEC_ARTERY_Modem_GONEC"
|
||||
}
|
||||
],
|
||||
|
||||
"cmake": {
|
||||
"inc_dirs": [
|
||||
"Inc"
|
||||
],
|
||||
"srcs": [
|
||||
"Src/**.c"
|
||||
]
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue