29#include "utility/MD5.h"
36constexpr static auto SHORT_HASH_LENGTH = 5;
37constexpr static auto MSG_BUFFER_LENGTH = 140;
45 void addUser(
const char* phoneNum, uint16_t userGroup = 1);
48 char*
editUserPhone(
const char* actualPhoneNum,
const char* newPhoneNum);
55 void addParam(
const char* pName, uint16_t val = 1);
59 char*
editParamName(
const char* pActualName,
const char* pNewName);
66 void parseBuf(
const char* pMsg, uint8_t userGroup);
75 bool isNameAvailable();
87 const char _hashEndSymbol =
':';
88 const char _semicolon =
';';
89 const char _equal =
'=';
90 const char _gap =
' ';
91 const char _nullChar =
'\0';
96 bool isHashValid(
char* msg,
char* hash);
99 char* _pTmpMsg =
nullptr;
100 char _shortHash[SHORT_HASH_LENGTH + 1];
102 void makeHashFromStr(
char* msg);
103 void makeShortHash(
char* str);
106 Hash _pHash = Hash();
107 State parsState = State::READY;
109 char _tmpHash[SHORT_HASH_LENGTH + 1];
110 char _subStr[LIST_ITEM_LENGTH];
111 char _pTmpName[LIST_ITEM_LENGTH];
113 char* _pMsg =
nullptr;
114 uint8_t _numberOfNames = 0;
115 uint8_t _processedNames = 0;
117 bool isHashParsingValid();
118 uint8_t getNumberOfNames();
120 void parseValue(
char* pActualParam);
121 char* getCharsUntilEndSym(
char* pActualParam,
char endSymbol);
122 char* positionOfStr(
char* pStr, uint8_t pos,
char startSymbol);
128 class ParameterList :
public ItemList{
130 void addItemWithCallback(
const char* pId, uint16_t val,
void (*callback)(uint16_t));
131 void setParamAccess(Item* pItem, uint8_t access);
132 uint8_t getParamAccess(Item* pItem);
135 uint8_t getParamAccess(
const char* pName);
137 char _msg[MSG_BUFFER_LENGTH];
140 Parser parser = Parser(_msg);
142 ParameterList paramList;
uint16_t getUserRightsLevel(const char *phoneNum)
Get user rights value.
uint8_t getNumOfUsers()
Get number of users in a list.
void addParam(const char *pName, uint16_t val=1)
Add parameter into Adeon.
void addUser(const char *phoneNum, uint16_t userGroup=1)
Add user into Adeon.
void deleteParam(const char *pName)
Delete parameter from Adeon.
void editParamValue(const char *pName, uint16_t val=1)
Edit parameter value.
char * editParamName(const char *pActualName, const char *pNewName)
Edit parameter name.
void addParamWithCallback(void(*callback)(uint16_t), const char *pName, uint16_t val=1)
Add parameter into Adeon.
char * editUserPhone(const char *actualPhoneNum, const char *newPhoneNum)
Edit user telephone number.
void setParamAccess(const char *pName, uint8_t access)
Set parameter access rights.
bool isUserInAdeon(const char *phoneNum)
Check if user is in Adeon.
void deleteUser(const char *phoneNum)
Delete user from Adeon.
void printParams()
Print content of the parameter list.
void printUsers()
Print content of the user list.
void parseBuf(const char *pMsg, uint8_t userGroup)
Call parsing process of a message.
bool isAdeonReady()
Check if Adeon is ready for incoming message.
bool isParamInAdeon(const char *pName)
Check if parameter is in Adeon.
uint16_t getParamValue(const char *pName)
Get parameter value.
void deleteList()
Delete whole Adeon list.
void editUserRights(const char *phoneNum, uint16_t userGroup=1)
Edit user rights.
uint8_t getNumOfParams()
Get number of parameters in a list.