mirror of
https://github.com/dimoniche/solarium.vlad.git
synced 2026-01-30 04:53:30 +03:00
Исправление ошибок
This commit is contained in:
parent
b95caf200c
commit
650ba39500
19
.vscode/settings.json
vendored
19
.vscode/settings.json
vendored
@ -1,10 +1,11 @@
|
|||||||
{
|
{
|
||||||
"files.associations": {
|
"files.associations": {
|
||||||
"array": "c",
|
"array": "c",
|
||||||
"string": "c",
|
"string": "c",
|
||||||
"string_view": "c",
|
"string_view": "c",
|
||||||
"ranges": "c",
|
"ranges": "c",
|
||||||
"span": "c",
|
"span": "c",
|
||||||
"fram_map.h": "c"
|
"fram_map.h": "c",
|
||||||
}
|
"service_name.h": "c"
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -117,6 +117,8 @@ void IncSolarAbonementCounters(CPU_INT08U ch, CPU_INT08U mode, CPU_INT32U money,
|
|||||||
counters.solar_chm[ch * SOLAR_MODES_COUNT + mode].card_bonus += bonus;
|
counters.solar_chm[ch * SOLAR_MODES_COUNT + mode].card_bonus += bonus;
|
||||||
counters.solar_m[mode].card_bonus += bonus;
|
counters.solar_m[mode].card_bonus += bonus;
|
||||||
|
|
||||||
|
counters.abonement_money += money;
|
||||||
|
|
||||||
counters.checksum = crc16((unsigned char*)&counters, offsetof(SolarCounters, checksum));
|
counters.checksum = crc16((unsigned char*)&counters, offsetof(SolarCounters, checksum));
|
||||||
WriteArrayFram(offsetof(TFramMap, solar_counters), sizeof(SolarCounters), (unsigned char*)&counters);
|
WriteArrayFram(offsetof(TFramMap, solar_counters), sizeof(SolarCounters), (unsigned char*)&counters);
|
||||||
}
|
}
|
||||||
@ -163,7 +165,7 @@ void IncSolarCounters(CPU_INT08U ch, CPU_INT08U mode, CPU_INT32U worktime, CPU_I
|
|||||||
|
|
||||||
if(card == 2)
|
if(card == 2)
|
||||||
{
|
{
|
||||||
counters.abonement_money += money;
|
//counters.abonement_money += money;
|
||||||
}
|
}
|
||||||
else if (card)
|
else if (card)
|
||||||
{
|
{
|
||||||
@ -920,10 +922,8 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
RefreshMenu();
|
RefreshMenu();
|
||||||
|
|
||||||
abonement_data* data = get_abonement_data();
|
abonement_data* data = get_abonement_data();
|
||||||
SaveEventRecord(data->bonus, JOURNAL_EVENT_ABONEMENT_BALANCE, data->money);
|
|
||||||
|
|
||||||
TEventRecord record; // 18 + 4 = 22
|
TEventRecord record; // 18 + 4 = 22
|
||||||
record.event = JOURNAL_EVENT_ABONEMENT_PAY_ACCEPTED; // +1
|
record.event = JOURNAL_EVENT_ABONEMENT_BALANCE; // +1
|
||||||
record.type_abonement = app_state.current_abonement; // +1
|
record.type_abonement = app_state.current_abonement; // +1
|
||||||
record.money = 0; // +2
|
record.money = 0; // +2
|
||||||
record.bonus = 0; // +2
|
record.bonus = 0; // +2
|
||||||
@ -934,7 +934,6 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
|
|
||||||
SaveEventAbonementRecord(&record);
|
SaveEventAbonementRecord(&record);
|
||||||
|
|
||||||
|
|
||||||
PlayMusicFile(41);
|
PlayMusicFile(41);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -967,7 +966,7 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
|
|
||||||
data->money += pay;
|
data->money += pay;
|
||||||
data->bonus = bonus;
|
data->bonus = bonus;
|
||||||
data->best_before = best_before;
|
data->best_before = time_before;
|
||||||
data->type_abonement = app_state.current_abonement;
|
data->type_abonement = app_state.current_abonement;
|
||||||
|
|
||||||
if(!write_mifare_card())
|
if(!write_mifare_card())
|
||||||
@ -986,7 +985,7 @@ void AppVladEventProcess(CPU_INT32U event)
|
|||||||
record.type_abonement = app_state.current_abonement; // +1
|
record.type_abonement = app_state.current_abonement; // +1
|
||||||
record.money = pay; // +2
|
record.money = pay; // +2
|
||||||
record.bonus = bonus; // +2
|
record.bonus = bonus; // +2
|
||||||
record.time_before = best_before; // +4
|
record.time_before = time_before; // +4
|
||||||
record.number_abonement = data->number_abonement; // +4
|
record.number_abonement = data->number_abonement; // +4
|
||||||
record.money_sum = data->money; // +2
|
record.money_sum = data->money; // +2
|
||||||
record.bonus_sum = data->bonus; // +2
|
record.bonus_sum = data->bonus; // +2
|
||||||
@ -2902,7 +2901,7 @@ void PrintWarning2Menu(void)
|
|||||||
{
|
{
|
||||||
PrintUserMenuStrUnalign("Ïåðåä èñïîëüçîâàíèåì", 0);
|
PrintUserMenuStrUnalign("Ïåðåä èñïîëüçîâàíèåì", 0);
|
||||||
PrintUserMenuStrUnalign("ÀÂÒÎÌÀÒÀ íåîáõîäèìî", 1);
|
PrintUserMenuStrUnalign("ÀÂÒÎÌÀÒÀ íåîáõîäèìî", 1);
|
||||||
PrintUserMenuStrUnalign(" îçíàêîìèòñÿ ", 2);
|
PrintUserMenuStrUnalign(" îçíàêîìèòüñÿ ", 2);
|
||||||
PrintUserMenuStrUnalign(" ñ åãî èíñòðóêöèåé", 3);
|
PrintUserMenuStrUnalign(" ñ åãî èíñòðóêöèåé", 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -125,7 +125,7 @@ void SaveEventAbonementRecord(TEventRecord * record)
|
|||||||
|
|
||||||
record->time = GetTimeSec();
|
record->time = GetTimeSec();
|
||||||
|
|
||||||
WriteArrayFram(offsetof(TFramMap, EventRecords[0])+journal_rec_index*sizeof(TEventRecord), sizeof(TEventRecord), (unsigned char*)&record);
|
WriteArrayFram(offsetof(TFramMap, EventRecords[0])+journal_rec_index*sizeof(TEventRecord), sizeof(TEventRecord), (unsigned char*)record);
|
||||||
|
|
||||||
journal_rec_index = (journal_rec_index + 1) % EVENT_RECORDS_COUNT;
|
journal_rec_index = (journal_rec_index + 1) % EVENT_RECORDS_COUNT;
|
||||||
|
|
||||||
|
|||||||
41
PROJECT/app/service_name.c
Normal file
41
PROJECT/app/service_name.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
#include "service_name.h"
|
||||||
|
|
||||||
|
char service_name[] = "Услуга загара в солярии";
|
||||||
|
|
||||||
|
char* get_service_name()
|
||||||
|
{
|
||||||
|
return service_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the number of characters in an UTF-8 encoded string.
|
||||||
|
// (Does not check for encoding validity)
|
||||||
|
int u8strlen(const char *s)
|
||||||
|
{
|
||||||
|
int len=0;
|
||||||
|
while (*s) {
|
||||||
|
if ((*s & 0xC0) != 0x80) len++ ;
|
||||||
|
s++;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Avoids truncating multibyte UTF-8 encoding at the end.
|
||||||
|
char *u8strncpy(char *dest, const char *src, size_t n)
|
||||||
|
{
|
||||||
|
int k = n-1;
|
||||||
|
int i;
|
||||||
|
if (n) {
|
||||||
|
dest[k] = 0;
|
||||||
|
strncpy(dest,src,n);
|
||||||
|
if (dest[k] & 0x80) { // Last byte has been overwritten
|
||||||
|
for (i=k; (i>0) && ((k-i) < 3) && ((dest[i] & 0xC0) == 0x80); i--) ;
|
||||||
|
switch(k-i) {
|
||||||
|
case 0: dest[i] = '\0'; break;
|
||||||
|
case 1: if ( (dest[i] & 0xE0) != 0xC0) dest[i] = '\0'; break;
|
||||||
|
case 2: if ( (dest[i] & 0xF0) != 0xE0) dest[i] = '\0'; break;
|
||||||
|
case 3: if ( (dest[i] & 0xF8) != 0xF0) dest[i] = '\0'; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dest;
|
||||||
|
}
|
||||||
13
PROJECT/app/service_name.h
Normal file
13
PROJECT/app/service_name.h
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#ifndef _SERVICE_NAME_H_
|
||||||
|
#define _SERVICE_NAME_H_
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
/// @brief Возвращаем имя услуги
|
||||||
|
/// @return
|
||||||
|
extern char* get_service_name();
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -10,6 +10,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
#include "ftp_app.h"
|
#include "ftp_app.h"
|
||||||
|
#include "service_name.h"
|
||||||
|
|
||||||
static OS_STK TermTaskStk[TERM_TASK_STK_SIZE];
|
static OS_STK TermTaskStk[TERM_TASK_STK_SIZE];
|
||||||
|
|
||||||
@ -562,7 +563,7 @@ void TermAppTask(void *p_arg)
|
|||||||
{
|
{
|
||||||
uint32_t packet_len;
|
uint32_t packet_len;
|
||||||
char *content;
|
char *content;
|
||||||
char str[48];
|
char str[32];
|
||||||
|
|
||||||
term_state = TERM_STATE_WAITING_PUR;
|
term_state = TERM_STATE_WAITING_PUR;
|
||||||
term_command_new &= ~TERM_COMMAND_ABORT_PUR;
|
term_command_new &= ~TERM_COMMAND_ABORT_PUR;
|
||||||
@ -587,12 +588,10 @@ void TermAppTask(void *p_arg)
|
|||||||
// product id
|
// product id
|
||||||
packet_len += ttk2_tag_add(&content[packet_len], 0x09, "1", 1);
|
packet_len += ttk2_tag_add(&content[packet_len], 0x09, "1", 1);
|
||||||
// timeout
|
// timeout
|
||||||
packet_len += ttk2_tag_add(&content[packet_len], 0x06, "60", 1);
|
packet_len += ttk2_tag_add(&content[packet_len], 0x06, "60", 1);
|
||||||
|
|
||||||
sprintf(str, "Óñëóãà çàãàðà â ñîëÿðèè");
|
|
||||||
|
|
||||||
// Product name
|
// Product name
|
||||||
packet_len += ttk2_tag_add(&content[packet_len], 0x0F, str, strlen(str));
|
packet_len += ttk2_tag_add(&content[packet_len], 0x0F, get_service_name(), strlen(get_service_name()));
|
||||||
|
|
||||||
// äëèíà â ïàêåòå
|
// äëèíà â ïàêåòå
|
||||||
ttk2_tag_setlen(term_buffer, packet_len + 2);
|
ttk2_tag_setlen(term_buffer, packet_len + 2);
|
||||||
|
|||||||
@ -717,7 +717,7 @@ void OnChangeClearStatAbonementCmd(void)
|
|||||||
{
|
{
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (picc_read_card_serial())
|
if (picc_is_new_card_present())
|
||||||
{
|
{
|
||||||
if (picc_read_card_serial())
|
if (picc_read_card_serial())
|
||||||
{
|
{
|
||||||
@ -731,7 +731,7 @@ void OnChangeClearStatAbonementCmd(void)
|
|||||||
OSTimeDly(100);
|
OSTimeDly(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClearStatAbonementCmd = 0;
|
ClearStatAbonementCmd = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6339,7 +6339,7 @@ CPU_INT08U const CounterSolarCardBonusName[] = "
|
|||||||
|
|
||||||
TDataDescStruct const CounterSolarCardBonusDesc = {
|
TDataDescStruct const CounterSolarCardBonusDesc = {
|
||||||
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
||||||
DATA_TYPE_RUB_CENT, // òèï ïàðàìåòðà
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
||||||
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
||||||
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
||||||
CHANNELS_NUM * SOLAR_MODES_COUNT, // ðàçìåð ìàññèâà
|
CHANNELS_NUM * SOLAR_MODES_COUNT, // ðàçìåð ìàññèâà
|
||||||
@ -6507,7 +6507,7 @@ CPU_INT08U const CounterModeCardBonusName[] = "
|
|||||||
|
|
||||||
TDataDescStruct const CounterModeCardBonusDesc = {
|
TDataDescStruct const CounterModeCardBonusDesc = {
|
||||||
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
DATA_DESC_VIEW, // òèï äåñêðèïòîðà
|
||||||
DATA_TYPE_RUB_CENT, // òèï ïàðàìåòðà
|
DATA_TYPE_ULONG, // òèï ïàðàìåòðà
|
||||||
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
DATA_LOC_FRAM, // ðàñïîëîæåíèå ïàðàìåòðà
|
||||||
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
DATA_IS_ARRAY, // ïðèçíàê ìàññèâà
|
||||||
SOLAR_MODES_COUNT, // ðàçìåð ìàññèâà
|
SOLAR_MODES_COUNT, // ðàçìåð ìàññèâà
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
#if defined(BOARD_SOLARIUM_WEB)
|
#if defined(BOARD_SOLARIUM_WEB)
|
||||||
#define DEVICE_FW_VERSION "7.09"
|
#define DEVICE_FW_VERSION "7.09"
|
||||||
#elif defined(BOARD_SOLARIUM_VLAD)
|
#elif defined(BOARD_SOLARIUM_VLAD)
|
||||||
#define DEVICE_FW_VERSION "8.50"
|
#define DEVICE_FW_VERSION "8.51"
|
||||||
#elif defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_POST_CARWASH)
|
#elif defined(BOARD_CENTRAL_CARWASH) || defined(BOARD_POST_CARWASH)
|
||||||
#define DEVICE_FW_VERSION "5.55"
|
#define DEVICE_FW_VERSION "5.55"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -25,7 +25,7 @@ if not "%~1" == "" goto debugFile
|
|||||||
|
|
||||||
@echo on
|
@echo on
|
||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
goto end
|
goto end
|
||||||
@ -34,7 +34,7 @@ goto end
|
|||||||
|
|
||||||
@echo on
|
@echo on
|
||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" "--debug_file=%~1" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" "--debug_file=%~1" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
||||||
|
|
||||||
@echo off
|
@echo off
|
||||||
:end
|
:end
|
||||||
@ -23,9 +23,9 @@
|
|||||||
|
|
||||||
if ($debugfile -eq "")
|
if ($debugfile -eq "")
|
||||||
{
|
{
|
||||||
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --debug_file=$debugfile --backend -f "C:\work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
& "C:\Program Files\IAR Systems\Embedded Workbench 9.0\common\bin\cspybat" -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.general.xcl" --debug_file=$debugfile --backend -f "C:\git_work\solarium.vlad\settings\sk-mlpc2368.Solarium_Vlad.driver.xcl"
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armJLINK.dll"
|
"C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armJLINK.dll"
|
||||||
|
|
||||||
"C:\work\solarium.vlad\Solarium Vlad\Exe\sk_mlpc2368.out"
|
"C:\git_work\solarium.vlad\Solarium Vlad\Exe\sk_mlpc2368.out"
|
||||||
|
|
||||||
--plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armbat.dll"
|
--plugin="C:\Program Files\IAR Systems\Embedded Workbench 9.0\arm\bin\armbat.dll"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
2828
sk-mlpc2368.dep
2828
sk-mlpc2368.dep
File diff suppressed because it is too large
Load Diff
@ -5003,7 +5003,7 @@
|
|||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>OOCOutputFile</name>
|
<name>OOCOutputFile</name>
|
||||||
<state>solarium_vlad_8_50.hex</state>
|
<state>solarium_vlad_8_51.hex</state>
|
||||||
</option>
|
</option>
|
||||||
<option>
|
<option>
|
||||||
<name>OOCCommandLineProducer</name>
|
<name>OOCCommandLineProducer</name>
|
||||||
@ -5835,6 +5835,12 @@
|
|||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\PROJECT\app\modem_task.h</name>
|
<name>$PROJ_DIR$\PROJECT\app\modem_task.h</name>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\PROJECT\app\service_name.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\PROJECT\app\service_name.h</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\PROJECT\app\term_tsk.c</name>
|
<name>$PROJ_DIR$\PROJECT\app\term_tsk.c</name>
|
||||||
<excluded>
|
<excluded>
|
||||||
|
|||||||
@ -7498,6 +7498,12 @@
|
|||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\PROJECT\app\modem_task.h</name>
|
<name>$PROJ_DIR$\PROJECT\app\modem_task.h</name>
|
||||||
</file>
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\PROJECT\app\service_name.c</name>
|
||||||
|
</file>
|
||||||
|
<file>
|
||||||
|
<name>$PROJ_DIR$\PROJECT\app\service_name.h</name>
|
||||||
|
</file>
|
||||||
<file>
|
<file>
|
||||||
<name>$PROJ_DIR$\PROJECT\app\term_tsk.c</name>
|
<name>$PROJ_DIR$\PROJECT\app\term_tsk.c</name>
|
||||||
</file>
|
</file>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user