supla-device
Loading...
Searching...
No Matches
calcfg_session.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_SUPLET_CALCFG_SESSION_H_
5#define SRC_SUPLA_SUPLET_CALCFG_SESSION_H_
6
7#include <stdint.h>
8
9#include <supla/suplet/config.h>
10#include <supla/suplet/definition_cache.h>
11#include <supla/suplet/storage.h>
12
13namespace Supla {
14namespace Suplet {
15
16#if SUPLA_SUPLET_DEFINITION_CACHE_CHUNK_SIZE > \
17 SUPLA_SUPLET_ARTIFACT_STORAGE_CHUNK_SIZE
18#define SUPLA_SUPLET_TRANSFER_STORAGE_CHUNK_SIZE \
19 SUPLA_SUPLET_DEFINITION_CACHE_CHUNK_SIZE
20#else
21#define SUPLA_SUPLET_TRANSFER_STORAGE_CHUNK_SIZE \
22 SUPLA_SUPLET_ARTIFACT_STORAGE_CHUNK_SIZE
23#endif
24
25enum class CalcfgTransferType : uint8_t {
26 None = 0,
27 Definition = 1,
28 Instance = 2,
29};
30
31enum class ArtifactUpdateMode : uint8_t {
32 Replace = 0,
33 Remove = 1,
34 Keep = 2,
35};
36
38 bool active = false;
39 CalcfgTransferType type = CalcfgTransferType::None;
40 uint32_t lastActivityMs = 0;
41
42 uint32_t definitionId = 0;
43 uint16_t definitionVersion = 0;
44 uint16_t definitionSize = 0;
45 uint16_t definitionReceivedSize = 0;
46 DefinitionCacheHandle definitionCacheHandle = {};
47
48 uint8_t instanceId = 0;
49 uint32_t revision = 0;
50 uint16_t configSize = 0;
51 uint16_t configReceivedSize = 0;
52 uint32_t artifactSize = 0;
53 uint32_t artifactReceivedSize = 0;
54 ArtifactUpdateMode artifactUpdateMode = ArtifactUpdateMode::Remove;
55 ArtifactStorageHandle artifactStorageHandle = {};
56 uint8_t config[SUPLA_SUPLET_MAX_CONFIG_SIZE + 1] = {};
57
58 uint16_t storageChunkIndex = 0;
59 uint16_t storageChunkSize = 0;
60 uint8_t storageChunk[SUPLA_SUPLET_TRANSFER_STORAGE_CHUNK_SIZE] = {};
61};
62
63#undef SUPLA_SUPLET_TRANSFER_STORAGE_CHUNK_SIZE
64
65} // namespace Suplet
66} // namespace Supla
67
68#endif // SRC_SUPLA_SUPLET_CALCFG_SESSION_H_
Definition calcfg_session.h:37
Definition definition_cache.h:24