ParaLib 2.0.15-master SHA: 2e03d68caa
PARA_Lib.h
Go to the documentation of this file.
1
16//*****************************************************************************/
17//
18//************ Dokumentation at https://doc.retostronik.de/ParaLib/ ***********/
19//
20//*****************************************************************************/
21
22#ifndef ParaLib_h
23#define ParaLib_h
24
25#if __STDC_VERSION__ >= 201112L && ! defined __cplusplus
26 #include <assert.h>
27#else
28 #define static_assert _Static_assert
29#endif
30
31#include "SYS_Type.h"
32#include "cmsis_compiler.h"
33
35#define DEFINE_STR(s) #s
38#define DEFINE_VAL(s) DEFINE_STR(s)
39
41#define PARA_STR(s) "<PARA"#s">"
43
45#define PARA(s) PARA_STR(s)
46
48#define ERROR_STR(s) "<ERROR"#s">"
51#define ERROR(s) ERROR_STR(s)
52
54#ifdef HELP_TEXTS_IN_FILE
56typedef struct
57{
58 const uint16_t ui16Version;
59 const uint16_t ui16ParaID;
60 const uint32_t ui32Length;
61 const char cHelpText[];
62}tParaHelpText;
63
64#define PARA_HELP_TEXT_COMBINE(x)
65#define PARA_HELP_TEXT_SECTION(PARA_ID, HELP) static const tParaHelpText g_tParaHelpText##PARA_ID __attribute__((section("para_help_strings"), used)) = {1, PARA_ID, sizeof(HELP) - 1, HELP};
66#else
67#define PARA_HELP_TEXT_COMBINE(x) x
68#define PARA_HELP_TEXT_SECTION(PARA_ID, HELP)
69#endif
70
71#ifdef INCLUDE_ENGLISH_HELP
72#define INCLUDE_HELP_EN(HELP) HELP
73#else
74#define INCLUDE_HELP_EN(HELP)
75#endif
76
77#ifdef INCLUDE_GERMAN_HELP
78#define INCLUDE_HELP_DE(HELP) HELP
79#else
80#define INCLUDE_HELP_DE(HELP)
81#endif
83
86#define xstr(s) str(s)
88#define str(s) #s
90
92#if __CC_ARM
93// Arm Compiler 4/5 does not support static_assert
94#define ASSERT_PARA_NAME(NAME)
95#define ASSERT_PARA_DESCRIPTION(DESCRIPTION)
96#define ASSERT_PARA_HELP(HELP)
97#else
98// Test if strings are too short
99#define ASSERT_PARA_NAME(NAME) static_assert(sizeof(NAME) >= 0, \
100"Parameter name to short!")
101
102// Test if strings are too short
103#define ASSERT_PARA_DESCRIPTION(DESCRIPTION) static_assert(sizeof(DESCRIPTION) >= MIN_PARA_DESCRIPTION_LENTH, \
104"Parameter description text to short must be at least "xstr(MIN_PARA_DESCRIPTION_LENTH)" characters long!")
105
106// Test if strings are too short
107#define ASSERT_PARA_HELP(HELP) static_assert(sizeof(HELP) >= MIN_PARA_HELP_LENTH, \
108"Parameter help text to short must be at least "xstr(MIN_PARA_HELP_LENTH)" characters long!")
109#endif
111
112
135#define ParameterF32(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
136 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
137 \
138const ParaData_F32 g_tParaData_##PARA_ID = { \
139VARIABLE_NAME, \
140MIN, \
141MAX, \
142DEFAULT \
143}; \
144 \
145static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
146static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
147static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
148static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = \
149DESCRIPTION PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
150PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
151 \
152const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
153GROUP_ID, \
154PARA_ID, \
155ACCESS, \
156COUNT, \
157g_sParaName##PARA_ID, \
158g_sParaDescription##PARA_ID, \
159g_sParaUnit##PARA_ID, \
160(void*)&g_tParaData_##PARA_ID, \
161(ReadFunction*)ON_READ, \
162(WriteFunction*)ON_WRITE, \
163(RestoreDefaultFunction*)SET_TO_DEFAULT, \
164(STORE_LOCATION << 24) | ((uint32_t)TYPE_float << 28) | FLAGS, \
165g_sParaSubstitutionText##PARA_ID, \
166};
167
168
191#define ParameterU32(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
192 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
193 \
194ASSERT_PARA_NAME(NAME); \
195ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
196ASSERT_PARA_HELP(HELP_EN); \
197ASSERT_PARA_HELP(HELP_DE); \
198 \
199const ParaData_U32 g_tParaData_##PARA_ID = { \
200VARIABLE_NAME, \
201MIN, \
202MAX, \
203DEFAULT \
204}; \
205 \
206static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
207static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
208static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
209static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = \
210DESCRIPTION PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
211PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
212 \
213const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
214GROUP_ID, \
215PARA_ID, \
216ACCESS, \
217COUNT, \
218g_sParaName##PARA_ID, \
219g_sParaDescription##PARA_ID, \
220g_sParaUnit##PARA_ID, \
221(void*)&g_tParaData_##PARA_ID, \
222(ReadFunction*)ON_READ, \
223(WriteFunction*)ON_WRITE, \
224(RestoreDefaultFunction*)SET_TO_DEFAULT, \
225(STORE_LOCATION << 24) | (uint32_t)(TYPE_uint32 << 28) | FLAGS, \
226g_sParaSubstitutionText##PARA_ID, \
227};
228
229
252#define ParameterI32(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
253 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
254 \
255ASSERT_PARA_NAME(NAME); \
256ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
257ASSERT_PARA_HELP(HELP_EN); \
258ASSERT_PARA_HELP(HELP_DE); \
259 \
260const ParaData_I32 g_tParaData_##PARA_ID = { \
261VARIABLE_NAME, \
262MIN, \
263MAX, \
264DEFAULT \
265}; \
266 \
267static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
268static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
269static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
270static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = \
271DESCRIPTION PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
272PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
273 \
274const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
275GROUP_ID, \
276PARA_ID, \
277ACCESS, \
278COUNT, \
279g_sParaName##PARA_ID, \
280g_sParaDescription##PARA_ID, \
281g_sParaUnit##PARA_ID, \
282(void*)&g_tParaData_##PARA_ID, \
283(ReadFunction*)ON_READ, \
284(WriteFunction*)ON_WRITE, \
285(RestoreDefaultFunction*)SET_TO_DEFAULT, \
286(STORE_LOCATION << 24) | (uint32_t)(TYPE_int32 << 28) | FLAGS, \
287g_sParaSubstitutionText##PARA_ID, \
288};
289
290
313#define ParameterU16(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
314 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
315 \
316ASSERT_PARA_NAME(NAME); \
317ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
318ASSERT_PARA_HELP(HELP_EN); \
319ASSERT_PARA_HELP(HELP_DE); \
320 \
321static const ParaData_U16 g_tParaData_##PARA_ID = { \
322VARIABLE_NAME, \
323MIN, \
324MAX, \
325DEFAULT \
326}; \
327 \
328static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
329static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
330static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
331static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = DESCRIPTION \
332 PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
333PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
334 \
335const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
336GROUP_ID, \
337PARA_ID, \
338ACCESS, \
339COUNT, \
340g_sParaName##PARA_ID, \
341g_sParaDescription##PARA_ID, \
342g_sParaUnit##PARA_ID, \
343(void*)&g_tParaData_##PARA_ID, \
344(ReadFunction*)ON_READ, \
345(WriteFunction*)ON_WRITE, \
346(RestoreDefaultFunction*)SET_TO_DEFAULT, \
347(STORE_LOCATION << 24) | (uint32_t)(TYPE_uint16 << 28) | FLAGS, \
348g_sParaSubstitutionText##PARA_ID, \
349};
350
351
374#define ParameterI16(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
375 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
376 \
377ASSERT_PARA_NAME(NAME); \
378ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
379ASSERT_PARA_HELP(HELP_EN); \
380ASSERT_PARA_HELP(HELP_DE); \
381 \
382static const ParaData_I16 g_tParaData_##PARA_ID = { \
383VARIABLE_NAME, \
384MIN, \
385MAX, \
386DEFAULT \
387}; \
388 \
389static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
390static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
391static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
392static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = DESCRIPTION \
393 PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
394PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
395 \
396const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
397GROUP_ID, \
398PARA_ID, \
399ACCESS, \
400COUNT, \
401g_sParaName##PARA_ID, \
402g_sParaDescription##PARA_ID, \
403g_sParaUnit##PARA_ID, \
404(void*)&g_tParaData_##PARA_ID, \
405(ReadFunction*)ON_READ, \
406(WriteFunction*)ON_WRITE, \
407(RestoreDefaultFunction*)SET_TO_DEFAULT, \
408(STORE_LOCATION << 24) | (uint32_t)(TYPE_int16 << 28) | FLAGS, \
409g_sParaSubstitutionText##PARA_ID, \
410};
411
412
435#define ParameterU8(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
436 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
437 \
438ASSERT_PARA_NAME(NAME); \
439ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
440ASSERT_PARA_HELP(HELP_EN); \
441ASSERT_PARA_HELP(HELP_DE); \
442 \
443static const ParaData_U8 g_tParaData_##PARA_ID = { \
444VARIABLE_NAME, \
445MIN, \
446MAX, \
447DEFAULT \
448}; \
449 \
450static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
451static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
452static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
453static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = DESCRIPTION \
454 PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
455PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
456 \
457const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
458GROUP_ID, \
459PARA_ID, \
460ACCESS, \
461COUNT, \
462g_sParaName##PARA_ID, \
463g_sParaDescription##PARA_ID, \
464g_sParaUnit##PARA_ID, \
465(void*)&g_tParaData_##PARA_ID, \
466(ReadFunction*)ON_READ, \
467(WriteFunction*)ON_WRITE, \
468(RestoreDefaultFunction*)SET_TO_DEFAULT, \
469(STORE_LOCATION << 24) | (uint32_t)(TYPE_uint8 << 28) | FLAGS, \
470g_sParaSubstitutionText##PARA_ID, \
471};
472
473
496#define ParameterI8(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MIN, MAX, DEFAULT, \
497 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
498 \
499ASSERT_PARA_NAME(NAME); \
500ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
501ASSERT_PARA_HELP(HELP_EN); \
502ASSERT_PARA_HELP(HELP_DE); \
503 \
504static const ParaData_I8 g_tParaData_##PARA_ID = { \
505VARIABLE_NAME, \
506MIN, \
507MAX, \
508DEFAULT \
509}; \
510 \
511static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
512static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
513static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
514static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = DESCRIPTION \
515 PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
516PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
517 \
518const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
519GROUP_ID, \
520PARA_ID, \
521ACCESS, \
522COUNT, \
523g_sParaName##PARA_ID, \
524g_sParaDescription##PARA_ID, \
525g_sParaUnit##PARA_ID, \
526(void*)&g_tParaData_##PARA_ID, \
527(ReadFunction*)ON_READ, \
528(WriteFunction*)ON_WRITE, \
529(RestoreDefaultFunction*)SET_TO_DEFAULT, \
530(STORE_LOCATION << 24) | (uint32_t)(TYPE_int8 << 28) | FLAGS, \
531g_sParaSubstitutionText##PARA_ID, \
532};
533
534
556#define ParameterSTR(VARIABLE_NAME, PARA_ID, GROUP_ID, NAME, UNIT, DESCRIPTION, HELP_EN, HELP_DE, SUBSTITUTION, COUNT, MAX_LENGTH, DEFAULT, \
557 ON_READ, ON_WRITE, SET_TO_DEFAULT, ACCESS, STORE_LOCATION, FLAGS) \
558 \
559ASSERT_PARA_NAME(NAME); \
560ASSERT_PARA_DESCRIPTION(DESCRIPTION); \
561ASSERT_PARA_HELP(HELP_EN); \
562ASSERT_PARA_HELP(HELP_DE); \
563 \
564static const ParaData_STR g_tParaData_##PARA_ID = { \
565VARIABLE_NAME, \
566MAX_LENGTH, \
567DEFAULT \
568}; \
569 \
570static const char g_sParaName##PARA_ID[] __attribute__((section("para_strings"), used)) = NAME; \
571static const char g_sParaUnit##PARA_ID[] __attribute__((section("para_strings"), used)) = UNIT; \
572static const char g_sParaSubstitutionText##PARA_ID[] __attribute__((section("para_strings"), used)) = SUBSTITUTION; \
573static const char g_sParaDescription##PARA_ID[] __attribute__((section("para_strings"), used)) = DESCRIPTION \
574 PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE)); \
575PARA_HELP_TEXT_SECTION(PARA_ID, PARA_HELP_TEXT_COMBINE(INCLUDE_HELP_EN("DOC_E " HELP_EN) INCLUDE_HELP_DE("DOC_D " HELP_DE))) \
576 \
577const Parameter g_tParameter##PARA_ID __attribute__((section("para_descriptor"))) = { \
578GROUP_ID, \
579PARA_ID, \
580ACCESS, \
581COUNT, \
582g_sParaName##PARA_ID, \
583g_sParaDescription##PARA_ID, \
584g_sParaUnit##PARA_ID, \
585(void*)&g_tParaData_##PARA_ID, \
586(ReadFunction*)ON_READ, \
587(WriteFunction*)ON_WRITE, \
588(RestoreDefaultFunction*)SET_TO_DEFAULT, \
589(STORE_LOCATION << 24) | (uint32_t)(TYPE_string << 28) | FLAGS, \
590g_sParaSubstitutionText##PARA_ID, \
591};
592
593
598#define Parameter(PARA_ID) \
599g_tParameter##PARA_ID
600
601
609#define ParameterWriteF32(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
610 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 4, 0, ACCESS_SOURCE, ACCESS_LEVEL)
611
612
620#define ParameterWriteU32(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
621 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 4, 0, ACCESS_SOURCE, ACCESS_LEVEL)
622
623
631#define ParameterWriteI32(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
632 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 4, 0, ACCESS_SOURCE, ACCESS_LEVEL)
633
634
642#define ParameterWriteU16(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
643 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 2, 0, ACCESS_SOURCE, ACCESS_LEVEL)
644
645
653#define ParameterWriteI16(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
654 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 2, 0, ACCESS_SOURCE, ACCESS_LEVEL)
655
656
664#define ParameterWriteU8(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
665 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 1, 0, ACCESS_SOURCE, ACCESS_LEVEL)
666
667
675#define ParameterWriteI8(PARA_ID, SUB_ID, DATA, ACCESS_SOURCE, ACCESS_LEVEL) \
676 g_tParameter##PARA_ID.OnWrite((void*)&g_tParameter##PARA_ID, SUB_ID, (void*)DATA, 1, 0, ACCESS_SOURCE, ACCESS_LEVEL)
677
678
685#define ParameterSetToDefaultF32(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
686 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
687
688
695#define ParameterSetToDefaultU32(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
696 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
697
698
705#define ParameterSetToDefaultI32(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
706 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
707
708
715#define ParameterSetToDefaultU16(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
716 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
717
718
725#define ParameterSetToDefaultI16(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
726 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
727
728
735#define ParameterSetToDefaultU8(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
736 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
737
738
745#define ParameterSetToDefaultI8(PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL) \
746 g_tParameter##PARA_ID.SetToDefault((void*)&g_tParameter##PARA_ID, SUB_ID, ACCESS_SOURCE, ACCESS_LEVEL);
747
748
753#define GetStorageLocation(Parameter) \
754 (((Parameter)->Flags >> 24) & 0x0F)
755
756
761#define GetDataType(Parameter) \
762 ((Parameter)->Flags >> 28)
763
765typedef enum
766{
774
777{
787};
788
791{
792 VIEWER_READ = 0x0001,
793 VIEWER_WRITE = 0x0002,
794 USER_READ = 0x0004,
795 USER_WRITE = 0x0008,
800 PLC_READ = 0x0100,
801 PLC_WRITE = 0x0200,
807 SPECIAL3_WRITE = 0x8000
809
813{
816 NVRAM = 2,
821 SD = 7,
824
827{
831};
832
834typedef struct
835{
836 uint16_t GroupID;
837 uint16_t ParentGroupID;
838 const char* Name;
839}Group;
840
844{
845 FLAG_NONE = 0x00000000,
846 FLAG_SYSTEM = 0x00000001,
847 FLAG_HIDDEN = 0x00000002,
848 FLAG_SCOPEABLE = 0x00000004,
849 FLAG_VOLATILE = 0x00000008,
853};
854
855typedef int32_t ReadFunction(void* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
856typedef int32_t WriteFunction(void* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
858
860typedef struct
861{
862 uint16_t GroupID;
863 uint16_t ParaID;
864
865 uint16_t Access;
866 uint16_t SubIdCount;
867
868 const char* Name;
869 const char* Description;
870 const char* Format;
871
872 void* Data;
873
877
878 uint32_t Flags;
880}Parameter;
881
882
884typedef __PACKED_STRUCT
885{
886 uint16_t ParaID;
887 uint16_t SubID;
888 uint16_t Count;
890
891//PARA_Data.c
893typedef struct
894{
895 int8_t* Wert;
896 int8_t MinWert;
897 int8_t MaxWert;
898 int8_t DefaultWert;
900
902typedef struct
903{
904 uint8_t* Wert;
905 uint8_t MinWert;
906 uint8_t MaxWert;
907 uint8_t DefaultWert;
909
911typedef struct
912{
913 int16_t* Wert;
914 int16_t MinWert;
915 int16_t MaxWert;
916 int16_t DefaultWert;
918
920typedef struct
921{
922 uint16_t* Wert;
923 uint16_t MinWert;
924 uint16_t MaxWert;
925 uint16_t DefaultWert;
927
929typedef struct
930{
931 int32_t* Wert;
932 int32_t MinWert;
933 int32_t MaxWert;
934 int32_t DefaultWert;
936
938typedef struct
939{
940 uint32_t* Wert;
941 uint32_t MinWert;
942 uint32_t MaxWert;
943 uint32_t DefaultWert;
945
947typedef struct
948{
949 int64_t* Wert;
950 int64_t MinWert;
951 int64_t MaxWert;
952 int64_t DefaultWert;
954
956typedef struct
957{
958 uint64_t* Wert;
959 uint64_t MinWert;
960 uint64_t MaxWert;
961 uint64_t DefaultWert;
963
965typedef struct
966{
967 float* Wert;
968 float MinWert;
969 float MaxWert;
972
974typedef struct
975{
976 double* Wert;
977 double MinWert;
978 double MaxWert;
979 double DefaultWert;
981
983typedef struct
984{
985 char* Wert;
986 int32_t MaxLength;
989//---------------------------------------------------------------------------------
990// External Functions
991//---------------------------------------------------------------------------------
992
993// PARA_Parameter.c
994uint32_t GetParameterCount(void);
995uint32_t GetGroupCount(void);
996Parameter* GetParameter(uint32_t ParaID);
997Group* GetGroup(uint32_t GroupID);
998int32_t GetDataTypeSize(uint8_t Type);
999uint32_t GetStringParameterLength(Parameter* p, uint16_t subID);
1000
1001//PARA_Stream.c
1002int32_t StreamReadParameterData_Value(Parameter_InfoHeader* info,uint8_t* destination,int32_t MaxCount, uint32_t offset, ParameterAccessSource Access, uint8_t AccessLevel);
1003int32_t StreamReadParameterData_Value2(Parameter* p, uint16_t subID, unsigned char* destination, int MaxCount, uint32_t offset, ParameterAccessSource Access, unsigned char AccessLevel);
1004int32_t StreamWriteParameterData_Value(Parameter_InfoHeader* info, unsigned char* source, uint32_t offset, ParameterAccessSource Access, unsigned char AccessLevel);
1005int32_t StreamWriteParameterData_Value2(Parameter* p, uint16_t subID, unsigned char* source, uint32_t offset, ParameterAccessSource Access, unsigned char AccessLevel, uint16_t count);
1006int32_t StreamWriteStringParameter(Parameter* p, uint16_t StartSubID, uint16_t count, unsigned char* destination, uint32_t* MaxCount, ParameterAccessSource Access, unsigned char AccessLevel);
1007int32_t StreamWriteStringParameter2(Parameter* p, uint16_t StartSubID, uint16_t count, unsigned char* destination, uint32_t* MaxCount, ParameterAccessSource Access, unsigned char AccessLevel, unsigned int *StrPos);
1008
1009//PARA_String.c
1010int32_t PARA_ValAsString(Parameter* p, int32_t SubId, char* dest, int32_t MaxLength, uint8_t AccessLevel);
1011int32_t PARA_ObjectToString(Parameter* p, object* data, char* dest, int32_t MaxLength);
1012int32_t PARA_ParseString(Parameter* p, int32_t SubId, char* input, uint8_t AccessLevel);
1013
1014//PARA_Data.c
1015int32_t ReadFunction_STD_I8(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1016int32_t ReadFunction_STD_I16(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1017int32_t ReadFunction_STD_I32(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1018int32_t ReadFunction_STD_I64(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1019int32_t ReadFunction_STD_U8(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1021int32_t ReadFunction_STD_U16(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1022int32_t ReadFunction_STD_U32(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1023int32_t ReadFunction_STD_U64(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1024int32_t ReadFunction_STD_F32(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1025int32_t ReadFunction_STD_STR(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1026
1027int32_t WriteFunction_STD_I8(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1028int32_t WriteFunction_STD_I16(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1029int32_t WriteFunction_STD_I32(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1030int32_t WriteFunction_STD_I64(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1031int32_t WriteFunction_STD_U8(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1033int32_t WriteFunction_STD_U16(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1034int32_t WriteFunction_STD_U32(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1035int32_t WriteFunction_STD_U64(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1036int32_t WriteFunction_STD_F32(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1037int32_t WriteFunction_STD_STR(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1039
1052
1053bool IsValidForRead(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1054bool IsValidForWrite(Parameter* ptThis, uint16_t ui16SubId, void* pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel);
1056
1057#ifndef DEPRECATED
1061#endif
1062
1063void GetParaDataAsObject(Parameter* p, uint32_t data, object* ob, uint8_t AccessLevel);
1064void GetParaValueAsObject(Parameter* p, uint16_t SubId, object* ob, uint8_t AccessLevel);
1065float ObjToFloat32(object* ob);
1066
1067
1068//---------------------------------------------------------------------------------
1069// Externals
1070//---------------------------------------------------------------------------------
1072extern int32_t ANZAHL_PARAMETER;
1074extern const int32_t ANZAHL_GRUPPEN;
1075
1077extern Parameter* ParaListe;
1079extern const Group* GruppenListe[];
1081extern uint8_t g_ui8ActualAccessLevel;
1083extern uint8_t *g_pui8ActualAccessLevelPointer;
1087extern uint16_t g_ui16FlashModified;
1088
1089#endif
uint16_t void int32_t uint32_t ParameterAccessSource tAccessSource
Definition: PARA_Flash_STM32H5.c:981
uint16_t void int32_t ui32MaxCount
Definition: PARA_Flash_STM32H5.c:981
uint16_t void int32_t uint32_t ui32Offset
Definition: PARA_Flash_STM32H5.c:981
uint16_t void * pData
Definition: PARA_Flash_STM32H5.c:981
uint16_t void int32_t uint32_t ParameterAccessSource uint8_t ui8AccessLevel
Definition: PARA_Flash_STM32H5.c:982
uint16_t ui16SubId
Definition: PARA_Flash_STM32H5.c:981
int32_t SetToDefaultFunction_STD_I32(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for signed int (32-Bit) datatype.
Definition: PARA_Data.c:1314
int32_t SetToDefaultFunction_STD_I8(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for signed char datatype.
Definition: PARA_Data.c:913
int32_t StreamWriteStringParameter2(Parameter *p, uint16_t StartSubID, uint16_t count, unsigned char *destination, uint32_t *MaxCount, ParameterAccessSource Access, unsigned char AccessLevel, unsigned int *StrPos)
Read String Parameter-data into buffer (Variant 2) The Data of the selected string-parameter is read ...
Definition: PARA_Stream.c:308
int32_t ReadFunction_STD_I8(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for signed char datatype.
Definition: PARA_Data.c:853
int32_t ANZAHL_PARAMETER
Number of existent parameters. Must be defined in main program.
int32_t PARA_ObjectToString(Parameter *p, object *data, char *dest, int32_t MaxLength)
Parse Parameter-data out of an object.
Definition: PARA_String.c:182
int32_t WriteFunction(void *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Definition: PARA_Lib.h:856
int32_t PARA_ValAsString(Parameter *p, int32_t SubId, char *dest, int32_t MaxLength, uint8_t AccessLevel)
Output the parameter value as formatted string.
Definition: PARA_String.c:101
Parameter * ParaListe
List of all existent parameters in device. The list is filled by the linker automatically.
void GetParaDataAsObject(Parameter *p, uint32_t data, object *ob, uint8_t AccessLevel)
Get Parameter-data as object type.
Definition: PARA_Data.c:1977
uint32_t GetStringParameterLength(Parameter *p, uint16_t subID)
Get the length of the string data of the given parameter.
Definition: PARA_Parameter.c:146
int32_t RestoreDefaultFunction(void *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Definition: PARA_Lib.h:857
int32_t SetToDefaultFunction_STD_U16(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for nsigned word (16-Bit) datatype.
Definition: PARA_Data.c:1236
int32_t SetToDefaultFunction_STD_U32(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for unsigned int (32-Bit) datatype.
Definition: PARA_Data.c:1479
int32_t WriteFunction_STD_Const(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for not writeable parameters.
Definition: PARA_Data.c:1937
int32_t StreamWriteParameterData_Value2(Parameter *p, uint16_t subID, unsigned char *source, uint32_t offset, ParameterAccessSource Access, unsigned char AccessLevel, uint16_t count)
Write Parameter-data from buffer (Variant 2) The Data of the given buffer is written to parameter.
Definition: PARA_Stream.c:202
const int32_t ANZAHL_GRUPPEN
Number of existent parameter-groups. Must be defined in main program.
int32_t WriteFunction_STD_U8_BitWise(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for unsigned char datatype as bit-array.
Definition: PARA_Data.c:1042
GET_VALUES
List of values, that can be retrived with the GetParaDataAsObject function.
Definition: PARA_Lib.h:827
@ GET_DEFAULT
Definition: PARA_Lib.h:830
@ GET_MAX
Definition: PARA_Lib.h:829
@ GET_MIN
Definition: PARA_Lib.h:828
Parameter * GetParameter(uint32_t ParaID)
Get the parameter of the given ID.
Definition: PARA_Parameter.c:64
int32_t StreamReadParameterData_Value(Parameter_InfoHeader *info, uint8_t *destination, int32_t MaxCount, uint32_t offset, ParameterAccessSource Access, uint8_t AccessLevel)
Read Parameter-data into buffer (Variant 1) The Data of the selected parameter is read and stored int...
Definition: PARA_Stream.c:51
STORE_LOCATION
List of storage locations for parameters.
Definition: PARA_Lib.h:813
@ EXT_FLASH
Definition: PARA_Lib.h:818
@ PARA_FLASH
Definition: PARA_Lib.h:815
@ EEPROM
Definition: PARA_Lib.h:817
@ SD_BASE
Definition: PARA_Lib.h:819
@ SD
Definition: PARA_Lib.h:821
@ NVRAM
Definition: PARA_Lib.h:816
@ FACTORY_EEPROM
Definition: PARA_Lib.h:822
@ FACTORY_FLASH
Definition: PARA_Lib.h:820
@ NOT_STORED
Definition: PARA_Lib.h:814
ACCESS_LEVEL
List of access-levels for parameters. Every parameter can limit read and write access according to th...
Definition: PARA_Lib.h:777
@ ACCESS_NONE
Definition: PARA_Lib.h:778
@ ACCESS_SPECIAL1
Definition: PARA_Lib.h:784
@ ACCESS_VIEWER
Definition: PARA_Lib.h:779
@ ACCESS_USER
Definition: PARA_Lib.h:780
@ ACCESS_SPECIAL3
Definition: PARA_Lib.h:786
@ ACCESS_PLC
Definition: PARA_Lib.h:783
@ ACCESS_SPECIAL2
Definition: PARA_Lib.h:785
@ ACCESS_DEVELOPER
Definition: PARA_Lib.h:782
@ ACCESS_PROFESSIONAL
Definition: PARA_Lib.h:781
int32_t StreamWriteStringParameter(Parameter *p, uint16_t StartSubID, uint16_t count, unsigned char *destination, uint32_t *MaxCount, ParameterAccessSource Access, unsigned char AccessLevel)
Read String Parameter-data into buffer (Variant 1) The Data of the selected string-parameter is read ...
Definition: PARA_Stream.c:245
bool IsValidForRead(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Check if the actual access-right is sufficient to read the parameter.
Definition: PARA_Data.c:770
float ObjToFloat32(object *ob)
Convertrs a given object to float.
Definition: PARA_Data.c:2113
int32_t WriteFunction_STD_I64(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for signed long int (64-Bit) datatype.
Definition: PARA_Data.c:1606
int32_t WriteFunction_STD_U32(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for unsigned int (32-Bit) datatype.
Definition: PARA_Data.c:1451
int32_t ReadFunction_STD_U32(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for unsigned int (32-Bit) datatype.
Definition: PARA_Data.c:1426
int32_t WriteFunction_STD_U64(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for unsigned long int (64-Bit) datatype.
Definition: PARA_Data.c:1684
int32_t WriteFunction_STD_U16(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for unsigned word (16-Bit) datatype.
Definition: PARA_Data.c:1207
int32_t StreamWriteParameterData_Value(Parameter_InfoHeader *info, unsigned char *source, uint32_t offset, ParameterAccessSource Access, unsigned char AccessLevel)
int32_t ReadFunction_STD_STR(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for string datatype.
Definition: PARA_Data.c:1742
uint32_t GetParameterCount(void)
Get the number of the existent parameters.
Definition: PARA_Parameter.c:41
int32_t WriteFunction_STD_STR(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for string datatype.
Definition: PARA_Data.c:1858
int32_t WriteFunction_STD_I32Q16(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Definition: PARA_Data.c:1368
bool IsValidForSetToDefault(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Check if the actual access-right is sufficient to set to default the parameter.
Definition: PARA_Data.c:829
int32_t ReadFunction_STD_U64(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for unsigned long int (64-Bit) datatype.
Definition: PARA_Data.c:1659
int32_t ReadFunction_STD_I32Q16(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Definition: PARA_Data.c:1338
int32_t ReadFunction_STD_U16(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for unsigned word (16-Bit) datatype.
Definition: PARA_Data.c:1181
int32_t WriteFunction_STD_I8(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for signed char datatype.
Definition: PARA_Data.c:878
int32_t PARA_ParseString(Parameter *p, int32_t SubId, char *input, uint8_t AccessLevel)
Parse Parameter-data out of an input string.
Definition: PARA_String.c:41
uint32_t GetGroupCount(void)
Get the number of the existent parameter-groups.
Definition: PARA_Parameter.c:51
int32_t WriteFunction_STD_F32(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for float (32-Bit) datatype.
Definition: PARA_Data.c:1529
int32_t ReadFunction_STD_U8(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for unsigned char datatype.
Definition: PARA_Data.c:937
int32_t SetToDefaultFunction_STD_F32(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for float (32-Bit) datatype.
Definition: PARA_Data.c:1557
int32_t ReadFunction_STD_I16(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for signed word (16-Bit) datatype.
Definition: PARA_Data.c:1102
int32_t WriteFunction_STD_I16(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for signed word (16-Bit) datatype.
Definition: PARA_Data.c:1127
int32_t SetToDefaultFunction_STD_STR(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for string datatype.
Definition: PARA_Data.c:1912
int32_t ReadFunction_STD_I64(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for signed int (64-Bit) datatype.
Definition: PARA_Data.c:1582
ParameterAccessSource
List of sources for parameter-access. Every parameter can limit access to these sources....
Definition: PARA_Lib.h:766
@ PARA_ACCESS_FROM_CAN
Definition: PARA_Lib.h:772
@ PARA_ACCESS_FROM_USB
Definition: PARA_Lib.h:769
@ PARA_ACCESS_FROM_HESP
Definition: PARA_Lib.h:771
@ PARA_ACCESS_FROM_ETHERNET
Definition: PARA_Lib.h:770
@ PARA_ACCESS_FROM_GUEST
Definition: PARA_Lib.h:768
@ PARA_ACCESS_FROM_CODE
Definition: PARA_Lib.h:767
int32_t SetToDefaultFunction_STD_I32Q16(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Definition: PARA_Data.c:1401
int32_t SetToDefaultFunction_STD_I16(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for signed word (16-Bit) datatype.
Definition: PARA_Data.c:1157
int32_t SetToDefaultFunction_STD_U64(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for unsigned long int (64-Bit) datatype.
Definition: PARA_Data.c:1713
int32_t SetToDefaultFunction_STD_Const(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default SetToDefault-function for not writeable parameters.
Definition: PARA_Data.c:1956
int32_t WriteFunction_STD_U8(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for unsigned char datatype.
Definition: PARA_Data.c:962
int32_t ReadFunction_STD_I32(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for signed int (32-Bit) datatype.
Definition: PARA_Data.c:1260
int32_t SetToDefaultFunction_STD_U8_BitWise(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for signed char datatype as bit-array.
Definition: PARA_Data.c:1074
int32_t WriteFunction_STD_I32(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default write-function for signed int (32-Bit) datatype.
Definition: PARA_Data.c:1285
int32_t ReadFunction(void *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Definition: PARA_Lib.h:855
uint16_t g_ui16FlashModified
Flag to show if the remanent storage is modified.
Definition: PARA_Stream.c:32
#define Parameter(PARA_ID)
Use to declare an Parameter as external.
Definition: PARA_Lib.h:598
uint8_t g_ui8ActualAccessLevel
Actual access-level (see Access restrictions).
Definition: PARA_ParaAccess.c:38
uint8_t * g_pui8ActualAccessLevelPointer
Pointer to the Actual access-level (see Access restrictions).
Definition: PARA_ParaAccess.c:39
int32_t SetToDefaultFunction_STD_I64(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for signed long int (64-Bit) datatype.
Definition: PARA_Data.c:1635
int32_t ReadFunction_STD_F32(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for float (32-Bit) datatype.
Definition: PARA_Data.c:1504
int32_t ReadFunction_STD_U8_BitWise(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default read-function for unsigned char datatype as bit-array.
Definition: PARA_Data.c:1014
int32_t StreamReadParameterData_Value2(Parameter *p, uint16_t subID, unsigned char *destination, int MaxCount, uint32_t offset, ParameterAccessSource Access, unsigned char AccessLevel)
Read Parameter-data into buffer (Variant 2) The Data of the selected parameter is read and stored int...
Definition: PARA_Stream.c:159
const Group * GruppenListe[]
List of all existent parameter-groups in device. The list is filled by the paraInit function.
int32_t GetDataTypeSize(uint8_t Type)
Calculate the Size of a parameter-type.
Definition: PARA_Parameter.c:93
Group * GetGroup(uint32_t GroupID)
Get the parameter-Group of the given ID.
Definition: PARA_Parameter.c:79
bool IsValidForWrite(Parameter *ptThis, uint16_t ui16SubId, void *pData, int32_t ui32MaxCount, uint32_t ui32Offset, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Check if the actual access-right is sufficient to write the parameter.
Definition: PARA_Data.c:801
int32_t SetToDefaultFunction_STD_U8(Parameter *ptThis, uint16_t ui16SubId, ParameterAccessSource tAccessSource, uint8_t ui8AccessLevel)
Default setToDefault-function for unsigned char datatype.
Definition: PARA_Data.c:990
ZUGRIFF
List of access restrictions for parameters. Every parameter can limit read and write access according...
Definition: PARA_Lib.h:791
@ SPECIAL2_READ
Definition: PARA_Lib.h:804
@ PROFESSIONAL_WRITE
Definition: PARA_Lib.h:797
@ PLC_WRITE
Definition: PARA_Lib.h:801
@ SPECIAL1_READ
Definition: PARA_Lib.h:802
@ VIEWER_WRITE
Definition: PARA_Lib.h:793
@ SPECIAL1_WRITE
Definition: PARA_Lib.h:803
@ PROFESSIONAL_READ
Definition: PARA_Lib.h:796
@ USER_READ
Definition: PARA_Lib.h:794
@ DEVELOPER_WRITE
Definition: PARA_Lib.h:799
@ USER_WRITE
Definition: PARA_Lib.h:795
@ SPECIAL3_WRITE
Definition: PARA_Lib.h:807
@ PLC_READ
Definition: PARA_Lib.h:800
@ SPECIAL3_READ
Definition: PARA_Lib.h:806
@ VIEWER_READ
Definition: PARA_Lib.h:792
@ SPECIAL2_WRITE
Definition: PARA_Lib.h:805
@ DEVELOPER_READ
Definition: PARA_Lib.h:798
FLAGS
List of Flags, which can be set for every single parameter First 8 Bits cannot be used,...
Definition: PARA_Lib.h:844
@ FLAG_SCOPEABLE
Parameter can be scoped.
Definition: PARA_Lib.h:848
@ FLAG_HIDDEN
Parameter is not shown by default. Can be activated with option in Parametereditor.
Definition: PARA_Lib.h:847
@ FLAG_VOLATILE
Value is modified by uC, must be polled regularly.
Definition: PARA_Lib.h:849
@ FLAG_NONE
No special flags.
Definition: PARA_Lib.h:845
@ FLAG_WRITE_APPROVE_REQUEST
Need special approve before write enable.
Definition: PARA_Lib.h:851
@ FLAG_SYSTEM
Parameter is added to Parametereditor and only necessary for parametereditor to work properly.
Definition: PARA_Lib.h:846
@ FLAG_SPECIAL_WRITE_ENABLE
The value can only be written in case a special option in the Parameter editor is activated.
Definition: PARA_Lib.h:852
@ FLAG_NO_FILE_OVERWRITE
Value is not written on write from Parameterfile Operation. It can only modified manually by user.
Definition: PARA_Lib.h:850
void GetParaValueAsObject(Parameter *p, uint16_t SubId, object *ob, uint8_t AccessLevel)
Get Parameter-value as object type.
Definition: PARA_Data.c:2063
uint16_t void int32_t MaxCount
Definition: PARA_MemoryInfo_ATSAM.c:207
uint16_t void int32_t uint32_t offset
Definition: PARA_MemoryInfo_ATSAM.c:207
uint16_t void int32_t uint32_t ParameterAccessSource Access
Definition: PARA_MemoryInfo_ATSAM.c:207
uint16_t void * data
Definition: PARA_MemoryInfo_ATSAM.c:207
Definition of variable limits and types.
Parameter-group.
Definition: PARA_Lib.h:835
const char * Name
Name of the group.
Definition: PARA_Lib.h:838
uint16_t GroupID
Identifier of the group. Must be unique.
Definition: PARA_Lib.h:836
uint16_t ParentGroupID
Identifier of the parent group. if the group is shown in the root, the parent id is 0.
Definition: PARA_Lib.h:837
Parameter-data structure for float (32-Bit)
Definition: PARA_Lib.h:966
float DefaultWert
Factory default value.
Definition: PARA_Lib.h:970
float MaxWert
Maximum value.
Definition: PARA_Lib.h:969
float * Wert
Pointer to Data value.
Definition: PARA_Lib.h:967
float MinWert
Minimum value.
Definition: PARA_Lib.h:968
Parameter-data structure for double (64-Bit)
Definition: PARA_Lib.h:975
double MinWert
Minimum value.
Definition: PARA_Lib.h:977
double * Wert
Pointer to Data value.
Definition: PARA_Lib.h:976
double DefaultWert
Factory default value.
Definition: PARA_Lib.h:979
double MaxWert
Maximum value.
Definition: PARA_Lib.h:978
Parameter-data structure for signed word (16-Bit)
Definition: PARA_Lib.h:912
int16_t MaxWert
Maximum value.
Definition: PARA_Lib.h:915
int16_t MinWert
Minimum value.
Definition: PARA_Lib.h:914
int16_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:913
int16_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:916
Parameter-data structure for signed int (32-Bit)
Definition: PARA_Lib.h:930
int32_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:931
int32_t MaxWert
Maximum value.
Definition: PARA_Lib.h:933
int32_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:934
int32_t MinWert
Minimum value.
Definition: PARA_Lib.h:932
Parameter-data structure for signed long (64-Bit)
Definition: PARA_Lib.h:948
int64_t MinWert
Minimum value.
Definition: PARA_Lib.h:950
int64_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:949
int64_t MaxWert
Maximum value.
Definition: PARA_Lib.h:951
int64_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:952
Parameter-data structure for signed char (8-Bit)
Definition: PARA_Lib.h:894
int8_t MaxWert
Maximum value.
Definition: PARA_Lib.h:897
int8_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:895
int8_t MinWert
Minimum value.
Definition: PARA_Lib.h:896
int8_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:898
Parameter-data structure for string.
Definition: PARA_Lib.h:984
char * DefaultWert
Factory default value.
Definition: PARA_Lib.h:987
int32_t MaxLength
Maximum string length.
Definition: PARA_Lib.h:986
char * Wert
Pointer to Data value.
Definition: PARA_Lib.h:985
Parameter-data structure for unsigned word (16-Bit)
Definition: PARA_Lib.h:921
uint16_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:922
uint16_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:925
uint16_t MaxWert
Maximum value.
Definition: PARA_Lib.h:924
uint16_t MinWert
Minimum value.
Definition: PARA_Lib.h:923
Parameter-data structure for unsigned int (32-Bit)
Definition: PARA_Lib.h:939
uint32_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:940
uint32_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:943
uint32_t MaxWert
Maximum value.
Definition: PARA_Lib.h:942
uint32_t MinWert
Minimum value.
Definition: PARA_Lib.h:941
Parameter-data structure for unsigned long (64-Bit)
Definition: PARA_Lib.h:957
uint64_t MaxWert
Maximum value.
Definition: PARA_Lib.h:960
uint64_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:961
uint64_t MinWert
Minimum value.
Definition: PARA_Lib.h:959
uint64_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:958
Parameter-data structure for unsigned char (8-Bit)
Definition: PARA_Lib.h:903
uint8_t DefaultWert
Factory default value.
Definition: PARA_Lib.h:907
uint8_t MinWert
Minimum value.
Definition: PARA_Lib.h:905
uint8_t * Wert
Pointer to Data value.
Definition: PARA_Lib.h:904
uint8_t MaxWert
Maximum value.
Definition: PARA_Lib.h:906
Information structure to identify one parameter in some functions.
Definition: PARA_Lib.h:885
uint16_t SubID
Identifier of the filed entry in case of a field structure.
Definition: PARA_Lib.h:887
uint16_t ParaID
Identifier of the parameter.
Definition: PARA_Lib.h:886
uint16_t Count
Number of sub-ids to process.
Definition: PARA_Lib.h:888
Parameter definition.
Definition: PARA_Lib.h:861
uint16_t SubIdCount
Number of entries in case of a data-field.
Definition: PARA_Lib.h:866
uint16_t Access
Access restriction, or-concatenated elements of the enum ZUGRIFF. See page Access restrictions.
Definition: PARA_Lib.h:865
WriteFunction * OnWrite
user-defined write-function, see page User defined onRead and onWrite functions.
Definition: PARA_Lib.h:875
const char * SubstitutionalTexts
Substitutional-texts to replace value with textx. See page Substitution of parameter values with text...
Definition: PARA_Lib.h:879
const char * Name
Name of the parameter. It is shown in the list of parameters.
Definition: PARA_Lib.h:868
uint16_t ParaID
Unique identifier of the parameter.
Definition: PARA_Lib.h:863
void * Data
Pointer to actual data of the parameter. Element of type ParaData_*.
Definition: PARA_Lib.h:872
uint16_t GroupID
Identifier of a parameter group. See page Grouping of parameters.
Definition: PARA_Lib.h:862
ReadFunction * OnRead
user-defined read-function, see page User defined onRead and onWrite functions.
Definition: PARA_Lib.h:874
const char * Format
Format of the parameter-value. See page Customized format of parameter values.
Definition: PARA_Lib.h:870
RestoreDefaultFunction * SetToDefault
user-defined restore-function, see page User defined onRead and onWrite functions.
Definition: PARA_Lib.h:876
uint32_t Flags
special flag, see page Special flags for parameters.
Definition: PARA_Lib.h:878
const char * Description
Description/Help-text of the parameter. It is shown with F1. See page Help-page for a parameter.
Definition: PARA_Lib.h:869