FULL-C: set and get

Tato stránka popisuje programovací jazyk FULL-C, který je dostupný na vybraných zařízeních SDS. 
Některá zařízení používají SDS-C, pro který máme návody jinde na této WiKi.

Jak je FULL-C program připojen k hardware

Základním důvodem pro existenci FULL-C programu na zařízení SDS je možnost číst stav hardware (např. opto-vstupy) a také hardware řídit (např. spínat relé).

Za tímto účelem je k dispozici sada C funkcí, které může program volat a které buď navrátí aktuální stav ("get" funkce), nebo stav změní ("set" funkce).

Zde je seznam těchto funkcí:

         void SDS_set_i32(unsigned int index, signed int value);
   signed int SDS_get_i32(unsigned int index);
 
         void SDS_set_i64(unsigned int index, int64_t value);
   signed int SDS_get_i64(unsigned int index);
  
         void SDS_set_u32(unsigned int index, unsigned int value);
 unsigned int SDS_get_u32(unsigned int index);
 
         void SDS_set_u64(unsigned int index, uint64_t value);
 unsigned int SDS_get_u64(unsigned int index);
 
         void SDS_set_f32(unsigned int index, float value);
        float SDS_get_f32(unsigned int index);
 
         void SDS_set_a(unsigned int index, void *ptr, unsigned int len);
         void SDS_get_a(unsigned int index, void *ptr, unsigned int maxlen);

Historicky zde původně byly i tyto funkce:

         void SDS_set_i(unsigned int index, signed int value);
   signed int SDS_get_i(unsigned int index);
 
         void SDS_set_u(unsigned int index, unsigned int value);
 unsigned int SDS_get_u(unsigned int index);

Ty "nezmizely" jen byly přejmenovány (i na i32, u na u32). Pokud je váš program používá, vše vám bude fungovat i nadále, ale co nejdříve jejich název ve svém programu přepište na nový.


Detailní Příklady

Přečtěte si nejprve celou tuto stránku, ať pochopíte princip. Následně se podívejte na jednotlivé příklady zde.


Princip

Základem je použití přístupu k informacím prostřednictvím tzv. indexu.

Pod každou položkou (číselným indexem) je schována odpovídající činnost nebo hodnota (např. index = 3 vrátí přes "get" funkci aktuální hodnotu "UpTime", viz tabulka).

Každá položka však může mít jiný obsah (číslo nebo text): podle toho je potřeba zvolit správný přístup (správnou set\get funkci):

 typ položky              | rozsah         | typ proměnné    | postfix set\get funkce
--------------------------+----------------+-----------------+-------------------------
  signed 32-bit integer   |  -2^31..+2^31  |  int            |  _i32
  signed 64-bit integer   |  -2^63..+2^63  |  int64_t        |  _i32
  unsigned 32-bit integer |      0..+2^32  |  unsigned int   |  _u64
  unsigned 64-bit integer |      0..+2^64  |  uint64_t       |  _u64
  IP address              |  uchar[4]      |  unsigned int   |  _u32
  float                   |  IEEE-754      |  float          |  _f32
  string (text)           |  len\maxlen    |  void* \ char*  |  _a
  binary array            |  len\maxlen    |  void* \ char*  |  _a

Jak lze vidět, bude při psaní programu potřeba správně vybrat postfix u dané funkce.

Příklad: chceme zapsat desetinné číslo "numf", v tom případě se jedná o typ "float numf;" a musíme použít SDS_set_f(index, numf);.


Varování: ačkoliv je většina indexů podobných jako u SDS (pro pole sys[]), nemají všechny indexy stejný význam mezi SDS-C a FULL-C. Vždy používejte tu správnou tabulku pro každý programovací jazyk.


Funkce _u32 \ _i32 \ _f32

Základní funkce určené pro získání číselné hodnoty "z" SDS, popř. zápisu číselné hodnoty "do" SDS. Vždy se jedná o kombinaci indexu (který určuje o co máme zájem) a hodnoty (která je vždy 32 bitová, tj. 4 bajty, ale obsah těchto 4 bajtů už je různý - buď celočíselná hodnota bez nebo se znaménkem (nejvyšší bit), nebo desetinné číslo - floating point).

Čtení hodnoty je potřeba pro zjištění aktuálního stavu (např. stav optického vstupu, nebo poslední známá teplota z čidla). Zápis se pak používá pro ovládání (např. sepnutí relé).


První příklad: čtení 32bitové hodnoty bez znaménka

unsigned int NTPtime;
NTPtime = SDS_get_u32(4);
printf("Aktuální Epoch Time je %u (secs).\n", NTPtime);

Druhý příklad: čtení 32bitové hodnoty se znaménkem

int NTPoffset;
NTPoffset = SDS_get_i32(26);
printf("Offset pro NTP čas je: %d hod.\n", NTPoffset);

Třetí příklad: čtení float hodnoty

float AD_Rinput__in_user_units;
AD_Rinput__in_user_units = SDS_get_f32(311);
printf("Resistance Measure Input value is: %0.3f \n", AD_Rinput__in_user_units);

Čtvrtý příklad: zápis 32bitové hodnoty bez znaménka

// zapni RELE 1 (zápisem nenulové hodnoty na index [231], viz tabulka)
SDS_set_u32(231, 0xFF);

Samozřejmě musíte pro každý index použít správný typ hodnoty (tzn.: unsigned int \ int \ float). Přesné přiřazení naleznete v tabulce na konci této stránky.

Pozn.: i když například víte, že hodnota může být například jenom 0 nebo 1 (příklad), tak vždy se zapisuje nebo čte všech 32bitů (unsigned int \ int \ float). Nepoužité bity jsou vždy nastaveny na nulu.


Funkce _u64 \ _i64

Princip je identický jako pro _u32 a _i32 funkce.

Vždy se podívejte do tabulky, jaké informace můžete v 64bitové formě dostat; většina jich je pouze ve 32bit formě. To ale nevadí, protože přeci například není problém do proměnné typu uint64_t zapsat 32bitové číslo.


Funkce _a

Funkce pracující s polem dat (SDS_get_a, SDS_set_a) vyžadují oproti ostatním set+get funkcím specifické parametry. Vždy se jedná o ukazatel na pole dat, a o informaci o velikosti tohoto pole.


První příklad: čtení textového parametru

// definujeme si pole o velikosti 32 bajtů; tzn. sem se vleze až 31 znaků plus jeden ukončovací 0x00
char sysLoc[32];

// SDS uloží text z indexu [2] do pole "sysLoc", o maximální velikosti 32 bajtů
SDS_get_a(2, (void *)sysLoc, 32);

// a můžeme se podívat na výsledek (výpis do konzole)
printf("Nastavená system location: %s \n", sysLoc);


Druhý příklad: čtení pole údajů - pouze položky z indexu označeného (a) v tabulce indexů

// definujeme si pole o 8 položkách, které obsahuje prvky typu "unsigned int" (každý tento prvek má velikost: 4 bajty)
unsigned int OPTOvalues[8];
 
// SDS zapíše 8 pozic od indexu [151] do pole OPTOvalues
// maximální velikost zápisu = 8*4 , tzn. 8 položek v poli OPTOvalues, každá o 4 bajtech
SDS_get_a(151, (void *)OPTOvalues, 8 * 4);

// a muzeme pristupovat na jednotlive polozky (jejich obsah je platny vuci okamziku zavolani GET funkce)
if (0 == OPTOvalues[0]) ...

Pro tyto přístupy je potřeba uvést, že blokové čtení funguje jen vždy od prvního indexu pro daný blok indexů.


Na zcela stejném přístupu funguje SDS_set_a() funkce.


Úplné detaily a všechny příklady

Detailní přehled, doplněný o příklady ve FULL-C, naleznete zde: FULL-C: set and get: detailed.


Tabulka

Podle typu každé položky lze použít jen právě tu danou specifickou funkci (_i32\_u32\_f32\_a\_i64\_u64), viz následující tabulka.

Je li také uveden klíč "(a)", lze mimo přístup k jedinému indexu využít blokový přístup pomocí funkce SDS_get_a(), která přečte určený počet indexů za sebou a uloží je do připraveného pole (toho se využívá při blokovém čtení většího počtu za-sebou ležících položek, např. blokové čtení stavu všech optovstupů atd.).


-----------+---------+------+--------------------------------------------------------------------------------------------------------
  index    | i\u\f\a |  dir |  comment
-----------+---------+------+--------------------------------------------------------------------------------------------------------
  0        | u32     |  GET |  firmware PAIRCODE (SDS device master-type identification)
  0        |         |  SET |  n/a (read-only)
-----------+---------+------+--
  1        | u32     |  GET |  count of actually logged-in users (logged-in to SDS web admin)
  1        |         |  SET |  n/a
-----------+---------+------+--
  2        | u32     |  GET |  unique ID for SDS (serial number assigned during manufacturing)
  2        | a       |  GET |  sysLocation (user configured text)
  2        |         |  SET |  n/a
-----------+---------+------+--
  3        | u32     |  GET |  uptime (increased by 1 each every 10msec) (example: 100 = 1 sec)
  3        |         |  SET |  n/a
-----------+---------+------+--
  4        | u32     |  GET |  LOCAL time (NTP UTC Epoch, with GMT-offset and DST-offset applied), value in seconds
  4        |         |  SET |  n/a (read-only)
-----------+---------+------+--
  5        | u32     |  GET |  LOCAL time decomposition = value of DAY (1 through 31)
  5        |         |  SET |  n/a
-----------+---------+------+--
  6        | u32     |  GET |  LOCAL time decomposition = value of MONTH (1 through 12)
  6        |         |  SET |  n/a
-----------+---------+------+--
  7        | u32     |  GET |  LOCAL time decomposition = value of YEAR (full value)
  7        |         |  SET |  n/a
-----------+---------+------+--
  8        | u32     |  GET |  LOCAL time decomposition = value of HOUR (0 through 23)
  8        |         |  SET |  n/a
-----------+---------+------+--
  9        | u32     |  GET |  LOCAL time decomposition = value of MINUTE (0 through 59)
  9        |         |  SET |  n/a
-----------+---------+------+--
  10       | u32     |  GET |  LOCAL time decomposition = value of SECOND (0 through 59)
  10       |         |  SET |  n/a
-----------+---------+------+--
  11       | u32     |  GET |  LOCAL time decomposition = day-of-week number = number of days since Sunday (0 to 6)
  11       |         |  SET |  n/a
-----------+---------+------+--
  12       | u32     |  GET |  SDS device IP address (web admin IP)
  12       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  13..15   |         |  GET |  n/a (reserved)
  13..15   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  16       | u32     |  GET |  network gateway IP address
  16       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  17..19   |         |  GET |  n/a (reserved)
  17..19   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  20       | u32     |  GET |  network IP MASK
  20       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  21..23   |         |  GET |  n/a (reserved)
  21..23   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  24       | u32     |  GET |  Ethernet Link Status
  24       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  25       | u32     |  GET |  Ethernet Link Speed (0, 10 or 100)
  25       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  26       | i32     |  GET |  read NTP GMT offset (-11 .. 11) = offset, in hour(s), between UTC and LOCAL time
  26       | i32     |  SET |  set NTP GMT offset (warning: this is not stored to permanent memory - use web admin to store it permanently)
-----------+---------+------+--
  27       | u32     |  GET |  validity of the assigned IP address (0 = SDS does not have any IP address assigned, at the moment)
  27       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  28       | u32     |  GET |  timestamp of last change (assignment) of IP address 
  28       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  29       | u32     |  GET |  state of DHCP client (0 = disabled, OR: enabled = status value of 1 .. 11)
  29       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  30       | u32     |  GET |  DHCP lease time (secs) value
  30       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  31       | u32     |  GET |  MAC[0] (always use only the lowest 8 bits, for each item)
  31       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  32       | u32     |  GET |  MAC[1]
  32       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  33       | u32     |  GET |  MAC[2]
  33       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  34       | u32     |  GET |  MAC[3]
  34       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  35       | u32     |  GET |  MAC[4]
  35       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  36       | u32     |  GET |  MAC[5]
  36       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  37..39   |         |  GET |  n/a (reserved)
  37..39   |         |  SET |  n/a (read-only)
-----------+---------+------+--
  40       | u32     |  GET |  SoC power-up or reset reason (64/128 = read only LSB: 8 bits) (512 = read all 32 bits)
  40       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  41       | a       |  GET |  OEM branding (login web page) [32 chars]
  41       | a       |  SET |  set custom OEM branding (login web page) [32 chars]
-----------+---------+------+--
  42       | a       |  GET |  OEM branding (welcome web page) [128 chars]
  42       | a       |  SET |  set custom OEM branding (welcome web page) [128 chars]
-----------+---------+------+--
  43       | u32     |  GET |  NTP-server IP address
  43       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  44       | u32     |  GET |  NTP-client status (0 = NOT synchronized)
  44       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  45       | u32     |  GET |  UpTime value - units: msec (uptime is constantly counted since then latest SDS FW boot)
  45       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  46       | u32     |  GET |  temperature of SoC - the RAW value (you have to manually recalculate this raw value to get degC)
  46       | i32     |  GET |  temperature of SoC - already recalculated to degC (SDS does have, and uses, all the required calibration info)
  46       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  48..60   |         |  GET |  n/a (reserved)
  48..60   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  61       | u32     |  GET |  read this to get a 32-bit Random Number (HW RNG)
  61       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  62..63   |         |  GET |  n/a (reserved)
  62..63   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  64       | u32     |  GET |  read this to get a value of an automatic SECOND DOWN-COUNTER (it does decrease its internal value by 1 for each 1 second, down to 0 where it stays, until restarted by writing)
  64       | u32     |  SET |  write this to set/start/restart an automatic SECOND DOWN-COUNTER
-----------+---------+------+--
  65       | u32     |  GET |  get state of the DST automatic (0 = not used) (1 = DST used and DST shift is applied) (2 = DST used but NO shift applied)
  65       | u32     |  SET |  n/a (reserved)
-----------+---------+------+--
  66..77   |         |  GET |  n/a (reserved) 
  66..77   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  78       | u32     |  GET |  SDS HW availability detail (information): 0 = single PWM output / 4 = four PWM outputs
  78       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  79       | u32     |  GET |  SDS HW sub-type (information): 1 = variant "DP" / 0 = basic BIG (no DP)
  79       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  80       | u32     |  GET |  SDS HW sub-type (information): 1 = variant "DS84" / 0 = no DS84
  80       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  81..84   |         |  GET |  n/a (reserved) 
  81..84   |         |  SET |  n/a (reserved)
-----------+---------+------+--
  85       | u32     |  GET |  SDS module type (BIG, BIG2 or STSW) discrimination:  0 = STSW or SMALL / 1 = BIG / 2 = BIG2
  85       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  86       | u32     |  GET |  FC: actual state (running, uploading, failed etc.) of the FULL-C program (0, 1, 2, 4, 8, 16, 32, 64)
  86       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  87       | u32     |  GET |  FC: unique identifier of the actually uploaded FULL-C program
  87       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  88       |         |  GET |  n/a (reserved) 
  88       |         |  SET |  n/a (reserved)
-----------+---------+------+--
  89       | u32     |  GET |  SDS IP-WatchDog: state (0 = OFF)
  89       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  90       | u32     |  GET |  SDS IP-WatchDog: last known RTT (msecs)
  90       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  91       | u32     |  GET |  SDS IP-WatchDog: logical output status
  91       |         |  SET |  n/a (read-only)
-----------+---------+------+--
  92..131  |         |  GET |  n/a (reserved)
  92..131  |         |  SET |  n/a (reserved)
-----------+---------+------+--
  132      | u32     |  GET |  FC: UTC time value, of the last FC-WDG restart of this (same) program (zeroed when a new program is uploaded)
  132      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  133      | u32     |  GET |  FC: UpTime value, of the last FC-WDG restart of this (same) program (zeroed when a new program is uploaded)
  133      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  134      | a       |  GET |  FC: archived text of the last FC error
  134      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  135      | u32     |  GET |  FC: number of FC-WDF restarts of this (same) program (zeroed when a new program is uploaded)
  135      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  136      | u32     |  GET |  FC: total count of all FC program starts, since the SDS boot
  136      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  137      | u32     |  GET |  read an actual SDS CPU cycle counter (number of executed instructions since power-up/reboot), continuously wraps around, (1 step = approx. 2 nsec)
  137      |         |  SET |  n/a
-----------+---------+------+--
  138      | u32     |  GET |  get SDS internal RTC power-on status (0 = invalid data after powerup in RTC) (1 = RTC data OK and were used on powerup) 
  138      |         |  SET |  n/a
-----------+---------+------+--
  139      | u32     |  GET |  NTP true actual raw epoch-time (secs since Linux Epoch) = clean UTC with *no* GMT nor DST offset applied
  139      |         |  SET |  n/a
-----------+---------+------+--
  140      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:401)
  140      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:401)
-----------+---------+------+--
  141      | a       |  GET |  FC: custom TRAP variable - read (TRAP:402)
  141      | a       |  SET |  FC: custom TRAP variable - write to change (TRAP:402) (note. max 32 characters)
-----------+---------+------+--
  142      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:403)
  142      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:403)
-----------+---------+------+--
  143      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:404)
  143      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:404)
-----------+---------+------+--
  144      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:405)
  144      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:405)
-----------+---------+------+--
  145      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:406)
  145      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:406)
-----------+---------+------+--
  146      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:407)
  146      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:407)
-----------+---------+------+--
  147      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:408)
  147      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:408)
-----------+---------+------+--
  148      | u32     |  GET |  FC: custom TRAP variable - read (TRAP:409)
  148      | u32     |  SET |  FC: custom TRAP variable - write to change (TRAP:409)
-----------+---------+------+--
  149      |         |  GET |  n/a (reserved)
  149      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  150      |         |  GET |  FC: shared-variables access control - read state of the access control
  150      |         |  SET |  FC: shared-variables access control - use this to force a user-login in order to access the shared variables (0 = access without login is enabled)
-----------+---------+------+--
  151..182 | u32 (a) |  GET |  OPTO1..OPTO32 status (warning: 0 = input ACTIVE = with signal) (non-zero = input not active = no signal)
  151..182 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  183      | u32     |  GET |  SDS FW date stamp (or just 0x00000000 for a very old firmware) - use this to verify the features or to ask user to update the firmware to a required newer version
  183      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  184      | u32     |  GET |  FC: information about how this actual running program was started (0 = none) (1 = normal) (2 = fc-wdg or manual restart) (4 = freshly loaded)
  184      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  185      | u32     |  GET |  FC: actual FULL-C WatchDog (decreasing) timeout counter value, v msec
  185      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  186      | u32     |  GET |  (common) frequency for PWM3 and PWM4 generator (1Hz .. 5MHz)
  186      |         |  SET |  N/A (use SDS_PWMx_setDutyAsPercents)
-----------+---------+------+--
  187      | u32     |  GET |  PWM3 duty-cycle percent (0..100 [%])
  187      |         |  SET |  N/A (use SDS_PWMx_setDutyAsPercents)
-----------+---------+------+--
  188      | u32     |  GET |  PWM3 HW: direct "pulse" register value
  188      |         |  SET |  n/a
-----------+---------+------+--
  189      | u32     |  GET |  PWM4 duty-cycle percent (0..100 [%])
  189      |         |  SET |  N/A (use SDS_PWMx_setDutyAsPercents)
-----------+---------+------+--
  190      | u32     |  GET |  PWM4 HW: direct "pulse" register value
  190      |         |  SET |  n/a
-----------+---------+------+--
  191      | u32     |  GET |  (common) frequency for PWM1 and PWM2 generator (1Hz .. 5MHz)
  191      |         |  SET |  N/A (use SDS_PWMx_setDutyAsPercents)
-----------+---------+------+--
  192      | u32     |  GET |  PWM1 duty-cycle percent (0..100 [%])
  192      |         |  SET |  N/A (use SDS_PWMx_setDutyAsPercents)
-----------+---------+------+--
  193      | u32     |  GET |  PWM1 HW: direct "pulse" register value
  193      |         |  SET |  N/A 
-----------+---------+------+--
  194      | u32     |  GET |  reserved
  194      |         |  SET |  N/A
-----------+---------+------+--
  195      | u32     |  GET |  reserved
  195      |         |  SET |  N/A
-----------+---------+------+--
  196..228 | u32 (a) |  GET |  RELAY1..RELAY32 - "who" controls this output
  196..228 | u32     |  SET |  RELAY1..RELAY32 - (0 = manual = user via web) (2 = FULL-C) (4 = SDS IPwdg)
-----------+---------+------+--
  229..230 |         |  GET |  n/a (reserved)
  229..230 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  231..262 | u32 (a) |  GET |  RELAY1..RELAY32 - output status (0 = off)
  231..262 | u32     |  SET |  RELAY1..RELAY32 - output status control (0 = off) (!0 = coil activated)
-----------+---------+------+--
  263..265 |         |  GET |  n/a (reserved)
  263..265 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  266..297 | a       |  GET |  RELAY1..RELAY32 - identification/name (text, see webadmin)
  266..297 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  298..300 |         |  GET |  n/a (reserved)
  298..300 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  301      | u32     |  GET |  status (log0/log1) of GPIO-TOPBOARD pin
  301      | u32     |  SET |  control the GPIO-TOPBOARD pin value (if direction is set to output)
-----------+---------+------+--
  302      | u32     |  GET |  direction (in/out) of GPIO-TOPBOARD pin
  302      | u32     |  SET |  control the GPIO-TOPBOARD pin direction (input or output)
-----------+---------+------+--
  303..310 |         |  GET |  n/a (reserved)
  303..310 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  311..342 | f32 (a) |  GET |  AD: recalculated value (float) of A/D input
  311..342 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  343..374 | a       |  GET |  AD: input identification / name (text)
  343..374 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  375..406 | a       |  GET |  AD: input unit name (text)
  375..406 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  407..427 |         |  GET |  n/a (reserved)
  407..427 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  428      | u32     |  GET |  AD: user-selected type of the OpAmp chip (HW SDS) (0 = AD) (9 = LMV) 
  428      |         |  SET |  n/a (read-only) (configuration to be done via web admin) - note. this must match the HW
-----------+---------+------+--
  429      | u32     |  GET |  AD: raw value of Vbatt (raw ADC value). To convert use: Vbatt = (raw * 3.3)/2048 (result in Volts)
  429      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  430      | u32     |  GET |  AD: value of VrefInt in miliVolts (typical value: 3300)
  430      |         |  SET |  n/a (read-only)
-----------+---------+------+--
  431..438 | u32 (a) |  GET |  AD: raw value of A/D input in 12bits (0..4095) - for all SDS variants (64, 128 and 512)
  431..438 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  439..446 | u32 (a) |  GET |  AD: raw value of A/D input in 16bits (0..65535) - available only for the 512 SDS variant
  439..446 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  447..462 |         |  GET |  n/a (reserved)
  447..462 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  463..469 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [0]
  463..469 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  470..476 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [1]
  470..476 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  477..483 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [2]
  477..483 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  484..490 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [3]
  484..490 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  491..497 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [4]
  491..497 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  498..504 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [5]
  498..504 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  505..511 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [6]
  505..511 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  512..518 | f32 (a) |  GET |  AD: calibration constants (F0..F6) for A/D input nr. [7]
  512..518 |         |  SET |  n/a (read-only)
-----------+---------+------+--
  519..991 |         |  GET |  n/a (reserved)
  519..991 |         |  SET |  n/a (reserved)
-----------+---------+------+--
  992      | u32     |  GET |  UTC timestamp (localtime) of the moment, when local clock gets to 23:59:59 (= last second of this day)
  992      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  993      | u32     |  GET |  UTC timestamp (localtime) marking a start of yesterday (as a moment since when we capture a new record) (or 0 = if there is no record for yesterday)
  993      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  994      | u32     |  GET |  UTC timestamp (localtime) marking a start of today (or a moment of SDS power on), since when a today's record is captured
  994      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  995      | u32     |  GET |  count of seconds, during yesterday, capturing the total length of T0 tariff activity (captures the timespan since [993] to [994])
  995      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  996      | u32     |  GET |  count of seconds, during yesterday, capturing the total length of T1 tariff activity (captures the timespan since [993] to [994])
  996      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  997      | u32     |  GET |  count of seconds since the moment of [994] (start of today) until NOW; counting the duration of T0 tariff being active
  997      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  998      | u32     |  GET |  count of seconds since the moment of [994] (start of today) until NOW; counting the duration of T1 tariff being active
  998      |         |  SET |  n/a (reserved)
-----------+---------+------+--
  999      | u32     |  GET |  immediate state of the global Tariff Input (0 = T0 is active right now) (!0 = T1 is active right now)
  999      | u32     |  SET |  "manual" control of the global Tariff Input (write/control enabled only if the feature is set in web admin - control set to FULL-C)
-----------+---------+------+--
 1000..1031| u32 (a) |  GET |  [S0-input] actual live value of the impulse counter, for T0 tariff
 1000..1031| u32     |  SET |  [S0-input] modify the impulse counter, for T0 tariff
-----------+---------+------+--
 1032..1063| u32 (a) |  GET |  [S0-input] actual live value of the impulse counter, for T1 tariff
 1032..1063| u32     |  SET |  [S0-input] modify the impulse counter, for T0 tariff
-----------+---------+------+--
 1064..1095| u32 (a) |  GET |  [S0-input] time distance (in msec) between impulses
 1064..1095|         |  SET |  n/a (read-only)
-----------+---------+------+--
 1096..1127| u32 (a) |  GET |  [S0-input] time (in msec) since the last captured impulse
 1096..1127|         |  SET |  n/a (read-only)
-----------+---------+------+--
 1128..1159| u32     |  GET |  [S0-input] T0 counter value difference for the yesterday (for timespan since [993] to [994])
 1128..1159|         |  SET |  n/a (reserved)
-----------+---------+------+--
 1160..1191| u32     |  GET |  [S0-input] T1 counter value difference for the yesterday (for timespan since [993] to [994])
 1160..1191|         |  SET |  n/a (reserved)
-----------+---------+------+--
 1192..1223| u32     |  GET |  [S0-input] T0 counter value difference for the today - timespan since [994] (since start of today) to now
 1192..1223|         |  SET |  n/a (reserved)
-----------+---------+------+--
 1224..1255| u32     |  GET |  [S0-input] T1 counter value difference for the today - timespan since [994] (since start of today) to now
 1224..1255|         |  SET |  n/a (reserved)
-----------+---------+------+--
 1256..1499|         |  GET |  n/a (reserved)
 1256..1499|         |  SET |  n/a (reserved)
-----------+---------+------+--
 1500..1531| a       |  GET |  [S0-input] master configuration struct for this input
 1500..1531| a       |  SET |  n/a (reserved)
-----------+---------+------+--
 1532..1999|         |  GET |  n/a (reserved)
 1532..1999|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2000..2063| u32 (a) |  GET |  [1-W BUS (A)] device status
 2000..2063|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2100..2163| a       |  GET |  [1-W BUS (A)] master configuration struct for this OneWire device
 2100..2163|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2200..2263| i32 (a) |  GET |  [1-W BUS (A)] obtained value from device (basic value)
 2200..2263|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2300..2363| i32 (a) |  GET |  [1-W BUS (A)] obtained value from device (additional value)
 2300..2363|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2364..2487|         |  GET |  n/a (reserved)
 2364..2487|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2488..2495| a       |  GET |  (8-Byte) ROM code for a FamilyID OneWire device found with SDS_onewire_search_bus() for bus (A)
 2488..2495|         |  SET |  n/a 
-----------+---------+------+--
 2496      | u32     |  GET |  number of FamilyID OneWire devices found (via last SEARCH scan (SDS_onewire_search_bus)) on bus (A)
 2496      |         |  SET |  n/a
-----------+---------+------+--
 2497      | i32     |  GET |  principal result of a last SEARCH scan (SDS_onewire_search_bus) of the OneWire bus (A)
 2497      |         |  SET |  n/a
-----------+---------+------+--
 2498      | i32     |  GET |  principal result of a last MASTER rescan of the OneWire bus (A)
 2498      |         |  SET |  n/a
-----------+---------+------+--
 2499      | u32     |  GET |  number of OneWire devices found (via MASTER rescan) on bus (A)
 2499      |         |  SET |  n/a
-----------+---------+------+--
 2500..2563| u32 (a) |  GET |  [1-W BUS (B)] device status
 2500..2563|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2600..2663| a       |  GET |  [1-W BUS (B)] master configuration struct for this OneWire device
 2600..2663|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2700..2763| i32 (a) |  GET |  [1-W BUS (B)] obtained value from device (basic value)
 2700..2763|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2800..2863| i32 (a) |  GET |  [1-W BUS (B)] obtained value from device (additional value)
 2800..2863|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2864..2986|         |  GET |  n/a (reserved)
 2864..2986|         |  SET |  n/a (reserved)
-----------+---------+------+--
 2986..2993| a       |  GET |  (8-Byte) ROM code for a FamilyID OneWire device found with SDS_onewire_search_bus() for bus (B)
 2986..2993|         |  SET |  n/a 
-----------+---------+------+--
 2994      | u32     |  GET |  number of FamilyID OneWire devices found (via last SEARCH scan (SDS_onewire_search_bus)) on bus (B)
 2994      |         |  SET |  n/a
-----------+---------+------+--
 2995      | i32     |  GET |  principal result of a last SEARCH scan (SDS_onewire_search_bus) of the OneWire bus (B)
 2995      |         |  SET |  n/a
-----------+---------+------+--
 2996      | i32     |  GET |  principal result of a last MASTER rescan of the OneWire bus (B)
 2996      |         |  SET |  n/a
-----------+---------+------+--
 2997      | u32     |  GET |  number of OneWire devices found (via MASTER rescan) on bus (B)
 2997      |         |  SET |  n/a
-----------+---------+------+--
 2998      | u32     |  GET |  general 1-W Master Chip status: 1 = detecting; 2 or 4 = failure; 8 = working; 16 = disabled by user
 2998      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 2999      | u32     |  GET |  general 1-W Master Chip status: detection-retry countdown (*10msec)
 2999      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3000      |         |  GET |  n/a (reserved)
 3000      |         |  SET |  n/a (reserved)
-----------+---------+------+--
 3001      | a       |  GET |  custom 24-byte string (readable via SNMP .8.80)
 3001      | a       |  SET |  write
-----------+---------+------+--
 3002      | a       |  GET |  custom 24-byte string (readable via SNMP .8.81)
 3002      | a       |  SET |  write
-----------+---------+------+--
 3003      | a       |  GET |  custom 16-byte string (readable via SNMP .8.82)
 3003      | a       |  SET |  write
-----------+---------+------+--
 3004      | a       |  GET |  custom 16-byte string (readable via SNMP .8.83)
 3004      | a       |  SET |  write
-----------+---------+------+--
 3005      | a       |  GET |  custom 16-byte string (readable via SNMP .8.84)
 3005      | a       |  SET |  write
-----------+---------+------+--
 3006..3799|         |  GET |  n/a (reserved)
 3006..3799|         |  SET |  n/a (reserved)
-----------+---------+------+--
 3800      | u32     |  GET |  PVD Active - (nonzero:) main power failure detected
 3800      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3801      | u32     |  GET |  PVD Was Active - this flag is only cleared by reading this index 3801
 3801      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3802..3849|         |  GET |  n/a (reserved)
 3802..3849|         |  SET |  n/a (reserved)
-----------+---------+------+--
 3850      | u32     |  GET |  SD Card - fully mounted and useable
 3850      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3851      | i32     |  GET |  latest file i/o error code
 3851      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3852      | u32     |  GET |  SD Card - Block Size in bytes (typically 512)
 3852      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3853      | u32     |  GET |  SD Card - CardType
 3853      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3854      | u32     |  GET |  SD Card - CID - ProductSN
 3854      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3855      | u32     |  GET |  statistic counter: SDcard: all init attempts (= successful + failed)
 3855      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3856      | u32     |  GET |  statistic counter: SDcard: failed init attempts
 3856      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3857      | u32     |  GET |  SD Card - Total Sector Count in KiB (size of the card)
 3857      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3858      | u32     |  GET |  statistic counter: SDcard: sector reads
 3858      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3859      | u32     |  GET |  statistic counter: SDcard: sector writes
 3859      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3860      | u32     |  GET |  statistic counter: SDcard: sector r/w failures
 3860      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3861      | u32     |  GET |  statistic counter: number of opened files
 3861      |         |  SET |  n/a (read-only)
-----------+---------+------+--
 3862..3999|         |  GET |  n/a (reserved)
 3862..3999|         |  SET |  n/a (reserved)
-----------+---------+------+--
 4000..4099| i32     |  GET |  Shared Variables: S00 through S99 - read
 4000..4099| i32     |  SET |  Shared Variables: S00 through S99 - write
-----------+---------+------+--
 4100..4199| u32     |  GET |  Shared Variables: U00 through U99 - read
 4100..4199| u32     |  SET |  Shared Variables: U00 through U99 - write
-----------+---------+------+--
 4200..4299| f32     |  GET |  Shared Variables: F00 through F99 - read
 4200..4299| f32     |  SET |  Shared Variables: F00 through F99 - write
-----------+---------+------+--
 4300..4399| a       |  GET |  Shared Variables: T00 through T99 - read
 4300..4399| a       |  SET |  Shared Variables: T00 through T99 - write
-----------+---------+------+--
 4400..4999|         |  GET |  n/a (reserved)
 4400..4999|         |  SET |  n/a (reserved)
-----------+---------+------+--
 5000..5127| u/i/f 32|  GET |  BackUp-RAM (FC version 0x08+) - write
 5000..5127| u/i/f 32|  SET |  BackUp-RAM (FC version 0x08+) - read
-----------+-+-------+------+--
 5128..11118 |       |  GET |  n/a (reserved)
 5128..11118 |       |  SET |  n/a (reserved)
-----------+-+-------+------+--
 11199     | u/i 32  |  GET |  FW support for MQTT-c (0 == NOT present)
 11199     |         |  SET |  n/a
-----------+---------+------+--
 12200     | i32     |  GET |  work progress (and result) of mqtt_connect()
 12200     |         |  SET |  n/a 
-----------+---------+------+--
 12201     | i32     |  GET |  "CONNACK Connect Return" - result of mqtt_connect()
 12201     |         |  SET |  n/a 
-----------+---------+------+--
 12202     | i32     |  GET |  result of: mqtt_publish(), mqtt_subscribe(), mqtt_unsubscribe_index(), mqtt_unsubscribe_name()
 12202     |         |  SET |  n/a 
-----------+---------+------+--
 12203     | i32     |  GET |  MQTT protocol error counter (informative)
 12203     |         |  SET |  n/a 
-----------+--+------+------+--
 12204..12208 |      |  GET |  n/a (reserved)
 12204..12208 |      |  SET |  n/a (reserved)
-----------+--+------+------+--
 12209     | i32     |  GET |  Subscribe Table - total number of available rows
 12209     |         |  SET |  n/a 
-----------+---------+------+--
 12210     | a       |  GET |  latest received Topic Name (sent from broker)
 12210     |         |  SET |  n/a 
-----------+--+------+------+--
 12211..12241 | a    |  GET |  Subscribe Table: Topic Name for each table row
 12211..12241 |      |  SET |  n/a
--------------+------+------+--
 12242..12249 |      |  GET |  n/a (reserved)
 12242..12249 |      |  SET |  n/a
-----------+--+------+------+--
 12250     | a       |  GET |  latest received Value (sent from broker)
 12250     |         |  SET |  n/a 
-----------+--+------+------+--
 12251..12281 | a    |  GET |  Subscribe Table: actual Value for each table row
 12251..12281 |      |  SET |  n/a
--------------+------+------+--
 12282..12289 |      |  GET |  n/a (reserved)
 12282..12289 |      |  SET |  n/a
-----------+--+------+------+--
 12290     | u32     |  GET |  timestamp for the latest received data (Topic) from brokem
 12290     |         |  SET |  n/a 
-----------+--+------+--+---+--+--
 12291..12321 | u32 (a) |  GET |  Subscribe Table: timestamp for the last Value update, for each table row
 12291..12321 |         |  SET |  n/a
--------------+------+--+---+--+--
 12322..12398 |      |  GET |  n/a (reserved)
 12322..12398 |      |  SET |  n/a (reserved)
-----------+--+------+------+--
 12399     | u/i 32  |  GET |  FW support for MODBUS-TCP-c (0 == NOT present)
 12399     |         |  SET |  n/a 
-----------+---------+------+--
 12400     | i32     |  GET |  work progress (and result) of modbus_tcp_connect()
 12400     |         |  SET |  n/a 
-----------+---------+------+--
 12401     | i32     |  GET |  progress/result for function 0x01 - modbus_tcp_read(uid, 0x01, ...);
 12401     |         |  SET |  n/a 
-----------+---------+------+--
 12402     | i32     |  GET |  progress/result for function 0x02 - modbus_tcp_read(uid, 0x02, ...);
 12402     |         |  SET |  n/a 
-----------+---------+------+--
 12403     | i32     |  GET |  progress/result for function 0x03 - modbus_tcp_read(uid, 0x03, ...);
 12403     |         |  SET |  n/a 
-----------+---------+------+--
 12404     | i32     |  GET |  progress/result for function 0x04 - modbus_tcp_read(uid, 0x04, ...);
 12404     |         |  SET |  n/a 
-----------+---------+------+--
 12405     | i32     |  GET |  progress/result for function 0x05 - modbus_tcp_writesingle(uid, 0x05, ...);
 12405     |         |  SET |  n/a 
-----------+---------+------+--
 12406     | i32     |  GET |  progress/result for function 0x06 - modbus_tcp_writesingle(uid, 0x06, ...);
 12406     |         |  SET |  n/a 
-----------+--+------+------+--
 12407..12414 |      |  GET |  n/a (reserved)
 12407..12414 |      |  SET |  n/a (reserved)
-----------+--+------+------+--
 12415     | i32     |  GET |  progress/result for function 0x0F - modbus_tcp_writemultiple(uid, 0x0F, ...);
 12415     |         |  SET |  n/a 
-----------+---------+------+--
 12416     | i32     |  GET |  progress/result for function 0x10 - modbus_tcp_writemultiple(uid, 0x10, ...);
 12416     |         |  SET |  n/a 
-----------+--+------+------+--
 12417..12462 |      |  GET |  n/a (reserved)
 12417..12462 |      |  SET |  n/a (reserved) 
-----------+--+------+------+--
 12463     | u/i 32  |  GET |  latest Unit Identifier value written to MBAP header (msg TX to server)
 12463     |         |  SET |  n/a 
-----------+---------+------+--
 12464     | u/i 32  |  GET |  latest Transaction Identifier value written to MBAP header (msg TX to server)
 12464     |         |  SET |  n/a 
-----------+---------+------+--
 12465     | u/i 32  |  GET |  timestamp of the latest received message
 12465     |         |  SET |  n/a 
-----------+---------+------+--
 12466     | u/i 32  |  GET |  a count of received items inside the latest received message
 12466     |         |  SET |  n/a 
-----------+---------+------+--
 12467     | u/i 32  |  GET |  latest received Unit Identifier value (inside incoming MBAP header)
 12467     |         |  SET |  n/a 
-----------+---------+------+--
 12468     | u/i 32  |  GET |  latest received Transaction Identifier value (inside incoming MBAP header)
 12468     |         |  SET |  n/a 
-----------+---------+------+--
 12469     | u/i 32  |  GET |  an address of the first coil/input/register item (maps to a value in 12470)
 12469     |         |  SET |  n/a 
-----------+--+------+--+---+--+--
 12470..12719 | i32 (a) |  GET |  received values (latest received message contents)
 12470..12719 |         |  SET |  n/a 
--------------+---------+------+--


Poznámky

Položky obsahující: "konfigurační struktura" vyžadují dostatečně velký prostor pro uložení výsledku (při zavolání SDS_get_a() funkce). V takovém případě se do vámi určené cílové oblasti ukládá celý "struct" který obsahuje všechny potřebné údaje patřící pod danou položku (názvy, hodnoty, atd.). Pro detaily je nejlépe podívat se přímo na aktuální příklady, které přesně popisují postup pro každý typ takové struktury - a vysvětlují tuto poznámku svým kódem.

Indexy označené jako (a) lze blokově číst (pozor, označené specificky jako "a v závorce"). Vždy ale lze blokové čtení (tj. čtení více indexů najednou, za sebou, v rámci povoleného rozsahu) provést pouze od prvního indexu v bloku (ne od dalších v bloku). Příklad: indexy 1000 až 1031 lze přečíst jako jeden souvislý blok, když se začne číst od prvního indexu v bloku (tj. 1000). Počet následně čtených indexů se udává dalším parametrem při volání SDS_get_a() funkce. Pokud se pokusíte číst blok indexů ne od začátku bloku, čtení selže - pokud blok indexů začíná na 1000 tak musíte požádat o čtení od indexu 1000, přičemž začátek od 1001 a výše selže.

BackUp-RAM funkce je dostupná je pro firmware který poskytuje verzi FULL-C o hodnotě 0x08 nebo novější. BackUp-RAM je sada 32-bit hodnot, které lze zapisovat a číst, a které jsou (především) uchovány v paměti, která je zálohovaná baterií (tzn. drží hodnotu i po výpadku napájení, tak dlouho než se baterie vybije). Výhodou BackUp-RAM oproti DF je možnost přímého přístupu a rychlosti (naopak DF vyžaduje čtení a zápis celých stránek).

Sdílené proměnné je potřeba nejprve definovat, aby je šlo použít, a aby k nim šlo přistupovat přes set/get funkce - viz specifická stránka na této wiki.

Detaily (významy hodnot) pro položky MQTT klient a MODBUS-TCP klient jsou rozepsány na příslušných odpovídajících stránkách na této wiki.


Vysvětlení položek

V tabulce výše jsou uvedeny informace, které naleznete na jednotlivých indexech. Nicméně popisy uvedené v této tabulce jsou velmi zkrácené, a je k nim tedy potřeba mnohem širší vysvětlení. To naleznete na dalších stránkách v rámci této wiki, nebo se nás rovnou zeptejte (přes forum).


Vstupy pro měření napětí

Detaily k A/D vstupům jsou uvedeny zde. Pro psaní programu je důležité mapování indexu na jednotlivé vstupy, viz tabulka.