ftp в процессе

This commit is contained in:
Dmitriy 2021-02-19 21:16:01 +03:00
parent cbdcd4c606
commit 4b12925a98
11 changed files with 4855 additions and 4657 deletions

View File

@ -5,11 +5,12 @@
#include "ftp_client.h"
#include <string.h>
#include "time.h"
#include "term_tsk.h"
#include "journal.h"
#include "data.h"
#include "datadesc.h"
#include "ftp_app.h"
#include "fram.h"
#include "fram_map.h"
/*
92.53.96.10
@ -17,8 +18,9 @@ xmiker_morozov
Qwerty11
*/
// èñïîëüóçåì îáùèé ñ òåðìèíàëîì áóôåð äàííûõ
extern char term_buffer[TERM_BUFFER_SIZE];
static OS_STK FtpTaskStk[TERM_TASK_STK_SIZE];
char term_buffer[TERM_BUFFER_SIZE];
extern void PrintEventJournalRecord(TEventRecord *record, char *str_event, char *str_data);
CPU_INT08U time_to_ftp = 0;
@ -70,214 +72,12 @@ int ReadFtpCountersString(int index, char *buf)
{
CPU_INT32U i;
static const char header1[] = ";Ñîëÿðèé 1 Êîëëàòýí;Ñîëÿðèé 1 Óëüòðàôèîëåò;Ñîëÿðèé 1 Ìàêñèìàëüíûé;Ñîëÿðèé 2 Êîëëàòýí;Ñîëÿðèé 2 Óëüòðàôèîëåò;Ñîëÿðèé 2 Ìàêñèìàëüíûé;Ñîëÿðèé 3 Êîëëàòýí;Ñîëÿðèé 3 Óëüòðàôèîëåò;Ñîëÿðèé 3 Ìàêñèìàëüíûé\r\n";
static const char line1[] = "Äåíüãè, ðóá.";
static const char line2[] = "Çàïóñêîâ";
static const char line3[] = "Íàðàáîòêà, ìèí.";
static const char header2[] = ";Êîëëàòýí;Óëüòðàôèîëåò;Ìàêñèìàëüíûé\r\n";
static const char header3[] = ";Ñîëÿðèé 1;Ñîëÿðèé 2;Ñîëÿðèé 3\r\n";
static const char line4[] = "Êîëëàòýí, ÷:ìì";
static const char line5[] = "Óëüòðàôèîëåò, ÷:ìì";
static const char header4[] = "Íàëè÷íûå, ðóá.;Áàíê, ðóá.;Âñåãî, ðóá.\r\n";
static const char line6[] = "Òåñòîâûõ çàïóñêîâ";
static const char line7[] = "Âðåìÿ òåñòà, ìèí.";
static const char line10[] = "Êîëè÷åñòâî óáîðîê";
static const char line11[] = "Âðåìÿ óáîðîê, ìèí.";
static const char line12[] = "Ñðåäíåå âðåìÿ óáîðêè, ì:ññ";
static const char line13[] = "Ñðåäíåå âðåìÿ òåñòà, ì:ññ";
switch (index)
{
case 0:
strcpy(buf, header1);
break;
case 1:
strcpy(buf, line1);
for (i = 0; i < CHANNELS_NUM * SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterSolarMoneyDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 2:
strcpy(buf, line2);
for (i = 0; i < CHANNELS_NUM * SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterSolarRunsDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 3:
strcpy(buf, line3);
for (i = 0; i < CHANNELS_NUM * SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterSolarWorkTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 4:
strcpy(buf, line6);
for (i = 0; i < CHANNELS_NUM * SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterSolarTestRunsDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 5:
strcpy(buf, line6);
for (i = 0; i < CHANNELS_NUM * SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterSolarTestWorkTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 6:
strcpy(buf, "\r\n");
break;
case 7:
strcpy(buf, header2);
break;
case 8:
strcpy(buf, line1);
for (i = 0; i < SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterModeMoneyDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 9:
strcpy(buf, line2);
for (i = 0; i < SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterModeRunsDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 10:
strcpy(buf, line3);
for (i = 0; i < SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterModeWorkTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 11:
strcpy(buf, line6);
for (i = 0; i < SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterModeTestRunsDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 12:
strcpy(buf, line7);
for (i = 0; i < SOLAR_MODES_COUNT; i++)
{
strcat(buf, ";");
GetDataStr(&CounterModeWorkTestTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 13:
strcpy(buf, "\r\n");
break;
case 14:
strcpy(buf, header3);
break;
case 15:
strcpy(buf, line4);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterCollatenTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 16:
strcpy(buf, line5);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterUFTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 17:
strcpy(buf, line6);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterAllTestCountDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 18:
strcpy(buf, line7);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterAllTestTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 19:
strcpy(buf, line13);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterTestMeanTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 20:
strcpy(buf, line10);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterCleaningCountDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 21:
strcpy(buf, line11);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterCleaningTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 22:
strcpy(buf, line12);
for (i = 0; i < CHANNELS_NUM; i++)
{
strcat(buf, ";");
GetDataStr(&CounterCleaningMeanTimeDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
}
strcat(buf, "\r\n");
break;
case 23:
strcpy(buf, "\r\n");
break;
case 24:
strcpy(buf, header4);
break;
case 25:
GetDataStr(&CounterCashMoneyDesc, (CPU_INT08U*)buf, i, DATA_FLAG_DIRECT_INDEX);
strcat(buf, ";");
GetDataStr(&CounterCardMoneyDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
strcat(buf, ";");
GetDataStr(&CounterCommonMoneyDesc, (CPU_INT08U*)&buf[strlen(buf)], i, DATA_FLAG_DIRECT_INDEX);
strcat(buf, "\r\n");
break;
default:
return 0;
}
@ -512,5 +312,58 @@ int FtpUploadCsvReport(NET_IP_ADDR ip, CPU_INT32U id, char* login, char* pass, C
return 0;
}
void FtpAppTask(void *p_arg)
{
while(1)
{
#ifdef CONFIG_FTP_CLIENT_ENABLE
if (time_to_ftp)
{
CPU_INT32U ip;
CPU_INT32U id;
CPU_INT32U time = SystemTime;
CPU_INT32U result;
char login[16];
char pass[16];
GetData(&FtpDeviceNumberDesc, &id, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&FtpServerIpAddrDesc, &ip, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&FtpServerLoginDesc, login, 0, DATA_FLAG_SYSTEM_INDEX);
GetData(&FtpServerPassDesc, pass, 0, DATA_FLAG_SYSTEM_INDEX);
if (FtpUploadCsvReport(ip, id, login, pass, time, time_to_ftp) == 0)
{
result = 1;
SaveEventRecord(0, JOURNAL_EVENT_FTP_SEND, (time_to_ftp << 1) | 0);
if (time_to_ftp & FTP_FLAG_CLEAR_COUNTERS)
{
ClearCounters();
}
if (time_to_ftp & FTP_FLAG_CLEAR_LOGS)
{
ClearEventJournal();
}
}
else
{
result = 0;
SaveEventRecord(0, JOURNAL_EVENT_FTP_SEND, (time_to_ftp << 1) | 1);
}
WriteArrayFram(offsetof(TFramMap, FtpLastResult), sizeof(CPU_INT32U), (unsigned char *)&result);
WriteArrayFram(offsetof(TFramMap, FtpLastTime), sizeof(CPU_INT32U), (unsigned char *)&time);
time_to_ftp = 0;
ftp_send_cmd = 0;
}
#endif
OSTimeDly(1000);
}
}
void InitFTPApp()
{
OSTaskCreate(FtpAppTask, (void *)0, (OS_STK *)&FtpTaskStk[TERM_TASK_STK_SIZE-1], TERM_TASK_PRIO);
INT8U err;
OSTaskNameSet(TERM_TASK_PRIO, "Ftp Task", &err);
}
#endif //#ifdef CONFIG_FTP_CLIENT_ENABLE

View File

@ -8,8 +8,9 @@ extern CPU_INT08U time_to_ftp;
#define FTP_FLAG_SEND_COUNTERS 0x01
#define FTP_FLAG_SEND_LOGS 0x02
#define FTP_FLAG_CLEAR_COUNTERS 0x04
#define FTP_FLAG_CLEAR_LOGS 0x08
#define FTP_FLAG_CLEAR_LOGS 0x08
#define TERM_BUFFER_SIZE 2048
extern int FtpUploadCsvReport(NET_IP_ADDR ip, CPU_INT32U id, char* login, char* pass, CPU_INT32U time, CPU_INT08U flags);
extern void FtpCheckTimeToSend(CPU_INT32U systime);

View File

@ -13,6 +13,15 @@ int GetData(const TDataDescStruct* desc, void* buf, CPU_INT32U index, CPU_INT08U
TVariant32 Val;
CPU_INT32U ofst = 0;
if (desc->Type == DATA_TYPE_CHAR_STRING)
{
if (desc->Location == DATA_LOC_FRAM)
{
ReadArrayFram((CPU_INT32U)desc->Data, desc->ArraySize, buf);
}
return DATA_OK;
}
// îïðåäåëèì äîï. ñìåùåíèå äëÿ ìàññèâà
if (desc->IsArray)
{

View File

@ -16,6 +16,7 @@
#include "modem_task.h"
#include "modem.h"
#include "coin.h"
#include "ftp_app.h"
extern CPU_INT32U modem_status;
@ -3735,6 +3736,279 @@ TDataDescStruct const RegimeHopperDesc = {
0 // çíà÷åíèå ïî óìîë÷àíèþ
};
#ifdef CONFIG_FTP_CLIENT_ENABLE
/*************************************
Включение FTP
*************************************/
TDataDescStruct const FtpEnableDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpEnable), // указатель на переменную или адрес FRAM
(void*)&EnableChannelRange, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
EnableChannelName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableChannelList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
char const FtpEnableDescId[] = "FtpEnableDesc";
/*************************************
IP-адрес FTP-сервера
*************************************/
CPU_INT08U const FtpServerIpAddrName[] = "FTP";
TDataDescStruct const FtpServerIpAddrDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_IP_ADDR, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpServerIpAddr), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
FtpServerIpAddrName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0x5C35600A // "92.53.96.10"
};
char const FtpServerIpAddrDescId[] = "FtpServerIpAddrDesc";
/*************************************
Логин FTP-сервера
*************************************/
CPU_INT08U const FtpServerLoginName[] = "Логин";
CPU_INT08U const FtpServerLoginDefault[] = "xmiker_morozov";
TDataDescStruct const FtpServerLoginDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_CHAR_STRING, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
15, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpLogin), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
FtpServerLoginName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
(CPU_INT32U)&FtpServerLoginDefault[0]
};
char const FtpServerLoginDescId[] = "FtpServerLoginDesc";
/*************************************
Пароль FTP-сервера
*************************************/
CPU_INT08U const FtpServerPassName[] = "Пароль";
CPU_INT08U const FtpServerPassDefault[] = "Qwerty11";
TDataDescStruct const FtpServerPassDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_CHAR_STRING, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
15, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpPass), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
FtpServerPassName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
(CPU_INT32U)&FtpServerPassDefault[0]
};
char const FtpServerPassDescId[] = "FtpServerPassDesc";
/*************************************
FTP идентификатор устройства
*************************************/
CPU_INT08U const FtpDeviceNumberName[] = "ID устр.";
TRangeValueULONG const FtpDeviceNumberRange = {0, 99999999};
TDataDescStruct const FtpDeviceNumberDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpDeviceNumber), // указатель на переменную или адрес FRAM
(void*)&FtpDeviceNumberRange, // указатель на границы параметра
NULL, // функция по изменению
sizeof(CPU_INT32U), // смещение между элементами в массиве
FtpDeviceNumberName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
char const FtpDeviceNumberDescId[] = "FtpDeviceNumberDesc";
/*************************************
Время отправки статистики на FTP, час : мин
*************************************/
CPU_INT08U const FtpSendHourMinName[] = "Вр.отпр.";
TDataDescStruct const FtpSendHourMinDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_HOUR_MIN, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
0, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpSendHourMin), // указатель на переменную или адрес FRAM
(void*)&StatSendHourRange, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
FtpSendHourMinName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
60 * 1
};
char const FtpSendHourMinDescId[] = "FtpSendHourMinDesc";
/*************************************
Интервал отправки на FTP
*************************************/
CPU_INT08U const FtpSendIntervalName[] = "Интервал";
TRangeValueULONG const FtpSendIntervalRange = {0, 7};
CPU_INT08U const FtpSendInterval_str0[] = "";
CPU_INT08U const FtpSendInterval_str1[] = "";
CPU_INT08U const FtpSendInterval_str2[] = "";
CPU_INT08U const FtpSendInterval_str3[] = "";
CPU_INT08U const FtpSendInterval_str4[] = "";
CPU_INT08U const FtpSendInterval_str5[] = "";
CPU_INT08U const FtpSendInterval_str6[] = "12ч";
CPU_INT08U const FtpSendInterval_str7[] = "24ч";
CPU_INT08U const *FtpSendIntervalList[] = {FtpSendInterval_str0, FtpSendInterval_str1, FtpSendInterval_str2, FtpSendInterval_str3,
FtpSendInterval_str4, FtpSendInterval_str5, FtpSendInterval_str6, FtpSendInterval_str7};
TDataDescStruct const FtpSendIntervalDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpSendIntervalIndex), // указатель на переменную или адрес FRAM
(void*)&FtpSendIntervalRange, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
FtpSendIntervalName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
FtpSendIntervalList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
7
};
char const FtpSendIntervalDescId[] = "FtpSendIntervalDesc";
/*************************************
Последнее время отправки на ftp
*************************************/
CPU_INT08U const FtpLastSendTimeName[] = "Посл.вр.";
TDataDescStruct const FtpLastSendTimeDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_TIME, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpLastTime), // указатель на переменную или адрес FRAM
NULL, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
FtpLastSendTimeName, // указатель на строку названия параметра
DATA_NO_INDEX, // признак индексного параметра (список строк)
NULL, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
0
};
char const FtpLastSendTimeDescId[] = "FtpLastSendTimeDesc";
/*************************************
Последний результат отправки на FTP
*************************************/
CPU_INT08U const FtpLastSendResultName[] = "Посл.статус";
TRangeValueULONG const FtpLastSendResultRange = {0, 1};
CPU_INT08U const FtpLastSendResult_str0[] = "ОШИБКА";
CPU_INT08U const FtpLastSendResult_str1[] = "ОК";
CPU_INT08U const FtpLastSendResult_str2[] = "НЕИЗВЕСТНО";
CPU_INT08U const *FtpLastSendResultList[] = {FtpLastSendResult_str0, FtpLastSendResult_str1, FtpLastSendResult_str2};
TDataDescStruct const FtpLastSendResultDesc = {
DATA_DESC_VIEW, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_FRAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)offsetof(TFramMap, FtpLastResult), // указатель на переменную или адрес FRAM
(void*)&FtpLastSendResultRange, // указатель на границы параметра
NULL, // функция по изменению
0, // смещение между элементами в массиве
FtpLastSendResultName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
FtpLastSendResultList, // указатель на список строк для индексного параметра
DATA_INIT_DISABLE,
2
};
char const FtpLastSendResultDescId[] = "FtpLastSendResultDesc";
/*************************************
Команда отправить данные на ftp сейчас
*************************************/
CPU_INT08U const FtpSendNowCmdName[] = "Отправить";
CPU_INT32U ftp_send_cmd;
extern CPU_INT08U time_to_ftp;
void OnChangeFtpSendNowCmd(void)
{
if (ftp_send_cmd != 0)
{
time_to_ftp = FTP_FLAG_SEND_COUNTERS | FTP_FLAG_SEND_LOGS;
}
}
TDataDescStruct const FtpSendNowCmdDesc = {
DATA_DESC_EDIT, // тип дескриптора
DATA_TYPE_ULONG, // тип параметра
DATA_LOC_RAM, // расположение параметра
DATA_NO_ARRAY, // признак массива
0, // размер массива
NULL, // указатель на дескриптор индекса массива
(void*)&ftp_send_cmd, // указатель на переменную или адрес FRAM
(void*)&EnableChannelRange, // указатель на границы параметра
OnChangeFtpSendNowCmd, // функция по изменению
0, // смещение между элементами в массиве
FtpSendNowCmdName, // указатель на строку названия параметра
DATA_IS_INDEX, // признак индексного параметра (список строк)
EnableChannelList, // указатель на список строк для индексного параметра
DATA_INIT_ENABLE,
0
};
char const FtpSendNowCmdDescId[] = "FtpSendNowCmdDesc";
#endif // #ifdef CONFIG_FTP_CLIENT_ENABLE
//**************************************************
//**************************************************
//**************************************************
@ -3832,7 +4106,20 @@ const TDataDescArrayStruct AllDataArray[] =
{&PrintModeDesc, "PrintModeDesc"},
{&PrintTimeoutAfterDesc, "PrintTimeoutAfterDesc"},
#ifdef CONFIG_FTP_CLIENT_ENABLE
{&FtpEnableDesc, "FtpEnableDesc"},
{&FtpServerIpAddrDesc, "FtpServerIpAddrDesc"},
{&FtpSendHourMinDesc, "FtpSendHourMinDesc"},
{&FtpSendIntervalDesc, "FtpSendIntervalDesc"},
{&FtpLastSendTimeDesc, "FtpLastSendTimeDesc"},
{&FtpLastSendResultDesc, "FtpLastSendResultDesc"},
{&FtpSendNowCmdDesc, "FtpSendNowCmdDesc"},
{&FtpDeviceNumberDesc, "FtpDeviceNumberDesc"},
{&FtpServerLoginDesc, "FtpServerLoginDesc"},
{&FtpServerPassDesc, "FtpServerPassDesc"},
#endif
{NULL, ""}
};

View File

@ -291,4 +291,17 @@ extern TDataDescStruct const AcceptedRestMoneyCRC16Desc;
extern TDataDescStruct const AcceptedCoinDesc;
extern TDataDescStruct const AcceptedCoinCRC16Desc;
extern TDataDescStruct const FtpServerIpAddrDesc;
extern TDataDescStruct const FtpEnableDesc;
extern TDataDescStruct const FtpSendHourMinDesc;
extern TDataDescStruct const FtpSendIntervalDesc;
extern TDataDescStruct const FtpLastSendTimeDesc;
extern TDataDescStruct const FtpLastSendResultDesc;
extern TDataDescStruct const FtpSendNowCmdDesc;
extern TDataDescStruct const FtpDeviceNumberDesc;
extern TDataDescStruct const FtpServerLoginDesc;
extern TDataDescStruct const FtpServerPassDesc;
extern CPU_INT32U ftp_send_cmd;
#endif //#ifndef _DATADESC_H_

View File

@ -80,5 +80,17 @@ typedef struct
CPU_INT32U CommandV2;
CPU_INT32U TaxSystem;
#ifdef CONFIG_FTP_CLIENT_ENABLE
CPU_INT32U FtpEnable;
CPU_INT32U FtpServerIpAddr;
CPU_INT32U FtpDeviceNumber;
CPU_INT32U FtpSendHourMin;
CPU_INT32U FtpSendIntervalIndex;
CPU_INT32U FtpLastTime;
CPU_INT32U FtpLastResult;
char FtpLogin[16];
char FtpPass[16];
#endif
}TFramMap;

View File

@ -319,4 +319,9 @@ void Sec2Date(TRTC_Data *pDest, CPU_INT32U ulSec)
pDest->sec = ulSec;
}
void PrintSecDateTimeStringRaw(char *str, CPU_INT32U time)
{
TRTC_Data rtc_data;
Sec2Date(&rtc_data, time);
sprintf(str, "20%02d%02d%02d_%02d%02d%02d", rtc_data.year, rtc_data.mon, rtc_data.date, rtc_data.hour, rtc_data.min, rtc_data.sec);
}

View File

@ -39,6 +39,6 @@ int RTCCheckTime(TRTC_Data *rtc);
extern void PrintTimeString(char *str, CPU_INT32U time);
extern void PrintSecToHourMinSec(char *str, int seconds);
extern void PrintSecToBigHourMinSec(char *str, int seconds);
extern void PrintSecDateTimeStringRaw(char *str, CPU_INT32U time);
#endif //#ifndef _TIME_H_

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1084,6 +1084,7 @@
<option>
<name>CCDefines</name>
<state>BOARD_CENTRAL_CFG</state>
<state>CONFIG_FTP_CLIENT_ENABLE</state>
</option>
<option>
<name>CCPreprocFile</name>