Il existe une mémoire dans laquelle les réglages qui doivent être conservés sur la carte après une nouvelle installation d’esquisse peuvent être stockés de manière permanente. Il est, par exemple, utile d’enregistrer des paramètres tels que les données d’accès WiFi ou similaires.
L’exemple « PropertyEditor » de la bibliothèque « Arduino-mbed-API » est un petit programme qui peut éditer ces propriétés. L’exemple « PropertyTest » explique comment utiliser ces propriétés. Les propriétés peuvent être des chaînes de caractères ou des nombres. Plusieurs exemples de programmes inclus utilisent déjà des propriétés.
Certaines propriétés telles que le LoRa ID du dispositif, la tension de référence RTC et le calibrage RTC sont déjà stockées en permanence dans les cartes ECO Power, Eagle, LongRa (à partir de la version 7.5) et Turtle pendant la production.
Il y a trois endroits où les propriétés sont entreposées :
- Mémoire OTP – ne peut être programmée qu’une seule fois
Habituellement, la mémoire OTP est très petite, de sorte que seule une petite quantité de données peut être stockée ici. Souvent, ce type de mémoire n’est utilisé que par les fabricants de matériel. L’OTP n’est actuellement disponible que pour les cartes ECO Power et Eagle - Mémoire flash – stocke les données qui doivent être conservées (permanente)
La mémoire flash est également limitée en taille ; en général, seuls quelques kilo-octets sont réservés ; 16 kB avec l’ESP32, 1-64 kB avec le D21 (16 kB par défaut). Il se peut que la mémoire flash ne soit pas écrite aussi souvent que souhaité. Cependant, plusieurs milliers d’accès en écriture sont possibles - Mémoire RAM – permet de stocker les valeurs des propriétés pendant l’exécution du programme
Les valeurs des propriétés stockées dans la mémoire RAM ne sont pas conservées après le redémarrage de l’application
Lorsqu’une propriété est chargée, elle est d’abord recherchée dans la mémoire RAM, puis dans la mémoire flash, et enfin dans la mémoire OTP. Ainsi, une propriété flash peut écraser la propriété OTP ou la propriété flash est trouvée en premier.
Certaines propriétés sont déjà réservées en interne par le système et d’autres peuvent être ajoutées par l’utilisateur.
Propriétés déjà réservées
De nombreuses propriétés réservées ne sont pas encore définies et peuvent être définies par un programme ou à l’aide de l’éditeur de propriétés, si nécessaire.
Vous pouvez également définir et utiliser vos propres propriétés (commençant par #128). L’exemple « PropertyEditor » montre comment cela fonctionne : toutes les propriétés sont listées en interne comme « enum » et sont composées d’un nombre et d’un nom.
Une description de l’API se trouve dans le fichier « NVProperty.h », dans la bibliothèque « Arduino-mbed-API » (ECO Power, Eagle et LongRa) et « Turtle_RadioShuttle/NVProperty » (Turtle). L’exemple « PropertyTest » peut être utile pour apprendre à définir des propriétés.
Actuellement, les API de propriétés sont disponibles pour les cartes ECO Power, Eagle, LongRa et Turtle.
Propriété | ID | Type | Défaut |
---|---|---|---|
RTC_AGING_CAL | 1 | T_8BIT | prédéfini |
ADC_VREF | 2 | T_8BIT | prédéfini |
HARDWARE_REV | 3 | T_8BIT | 0 |
LORA_DEVICE_ID | 10 | T_32BIT | prédéfini |
LORA_CODE_ID | 11 | T_32BIT | prédéfini |
LORA_REMOTE_ID | 12 | T_32BIT | non défini |
LORA_REMOTE_ID_ALT | 13 | T_32BIT | non défini |
LORA_RADIO_TYPE | 14 | T_32BIT | non défini |
LORA_FREQUENCY | 15 | T_32BIT | non défini |
LORA_BANDWIDTH | 16 | T_32BIT | non défini |
LORA_SPREADING_FACTOR | 17 | T_8BIT | non défini |
LORA_TXPOWER | 18 | T_8BIT | non défini |
LORA_FREQUENCY_OFFSET | 19 | T_32BIT | non défini |
LORA_APP_PWD | 20 | T_STR | non défini |
LORA_APP_PWD_ALT | 21 | T_STR | non défini |
LOC_LONGITUDE | 25 | T_STR | non défini |
LOC_LATITUDE | 26 | T_STR | non défini |
LOC_NAME | 27 | T_STR | non défini |
HOSTNAME | 28 | T_STR | non défini |
WIFI_SSID | 30 | T_STR | non défini |
WIFI_PASSWORD | 31 | T_STR | non défini |
WIFI_SSID_ALT | 32 | T_STR | non défini |
WIFI_PASSWORD_ALT | 33 | T_STR | non défini |
USE_DHCP | 34 | T_STR | non défini |
MAC_ADDR | 35 | T_BIT | non défini |
NET_IP_ADDR | 36 | T_STR | non défini |
NET_IP_ROUTER | 37 | T_STR | non défini |
NET_IP_DNS_SERVER | 38 | T_STR | non défini |
NET_IP_DNS_SERVER_ALT | 39 | T_STR | non défini |
NET_NTP_SERVER | 50 | T_32BIT | non défini |
NET_NTP_SERVER_ALT | 51 | T_32BIT | non défini |
NET_NTP_GMTOFFSET | 52 | T_32BIT | non défini |
NET_NTP_DAYLIGHTOFFSET | 53 | T_32BIT | non défini |
MQTT_SERVER | 40 | T_STR | non défini |
MQTT_SERVER_ALT | 41 | T_STR | non défini |
MQTT_TOPIC_INFO | 42 | T_STR | non défini |
MQTT_TOPIC_ALARM | 43 | T_STR | non défini |
MQTT_TOPIC_CONTROL | 44 | T_STR | non défini |
MQTT_TOPIC_4 | 45 | T_STR | non défini |
MQTT_TOPIC_5 | 46 | T_STR | non défini |
ALARM_STATUS | 60 | T_32BIT | non défini |
VOIP_SERVER | 70 | T_STR | non défini |
VOIP_USER | 71 | T_STR | non défini |
VOIP_PASSWORD | 72 | T_STR | non défini |
VOIP_DEVNAME | 73 | T_STR | non défini |
VOIP_DIALNO | 74 | T_32BIT | non défini |
VOIP_DIALNO_ALT | 75 | T_32BIT | non défini |
PROG_CMDLINE | 80 | T_STR | non défini |
MY_CITY | 129 | T_STR | non défini |
Exemples
RTC_AGING_CAL = -10
ADC_VREF = 1121
NET_IP_ADDR = 192.168.1.1
MQTT_SERVER = « mqtt://username:password@domain:port »