<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?action=history&amp;feed=atom&amp;title=FULL-C%3A_snmp_functions</id>
	<title>FULL-C: snmp functions - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?action=history&amp;feed=atom&amp;title=FULL-C%3A_snmp_functions"/>
	<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_snmp_functions&amp;action=history"/>
	<updated>2026-06-13T17:59:26Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_snmp_functions&amp;diff=302&amp;oldid=prev</id>
		<title>Adamn v 5. 7. 2021, 06:56</title>
		<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_snmp_functions&amp;diff=302&amp;oldid=prev"/>
		<updated>2021-07-05T06:56:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 5. 7. 2021, 06:56&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l66&quot; &gt;Řádek 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''OID Type'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''OID Type'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''MIB Name'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''MIB Name'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''Description &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;       &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''Description &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;                     &lt;/ins&gt;'''                             &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;              &lt;/del&gt;'''                             &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adamn</name></author>
	</entry>
	<entry>
		<id>https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_snmp_functions&amp;diff=301&amp;oldid=prev</id>
		<title>Adamn: Založena nová stránka s textem „ 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,…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.merenienergie.cz/subdom/wiki/index.php?title=FULL-C:_snmp_functions&amp;diff=301&amp;oldid=prev"/>
		<updated>2021-07-05T06:56:06Z</updated>

		<summary type="html">&lt;p&gt;Založena nová stránka s textem „ Tato stránka popisuje programovací jazyk &amp;#039;&amp;#039;&amp;#039;FULL-C&amp;#039;&amp;#039;&amp;#039;, který je dostupný na vybraných zařízeních SDS.   Některá zařízení používají SDS-C,…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt; Tato stránka popisuje programovací jazyk '''FULL-C''', který je dostupný na vybraných zařízeních SDS. &lt;br /&gt;
 Některá zařízení používají SDS-C, pro který máme návody jinde na této WiKi.&lt;br /&gt;
&lt;br /&gt;
== Síťové funkce: odesílání SNMP TRAP zpráv ==&lt;br /&gt;
&lt;br /&gt;
Zařízení SDS umožňuje odeslat SNMP TRAP zprávu, na základě logiky uvnitř vašeho FULL-C programu.&lt;br /&gt;
&lt;br /&gt;
Za tímto účelem jsou k dispozici tyto dvě funkce:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
         void snmp_send_trap(unsigned int IP0, unsigned int IP1, unsigned int IP2, unsigned int IP3, unsigned int PDUspecificType, unsigned int tableIndex);&lt;br /&gt;
 unsigned int snmp_send_trap_status(void);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Proměnné IP0 až IP3 skládají (po částech) dohromady konkrétní IP adresu (IP0.IP1.IP2.IP3), na kterou je SNMP TRAP odeslán.&lt;br /&gt;
&lt;br /&gt;
== Princip ==&lt;br /&gt;
&lt;br /&gt;
SNMP protokol, který je podporován všemi zařízeními SDS, poskytuje i možnost odeslání tzv. TRAP zprávy ze zařízení SDS. Tato zpráva se typicky odesílá, pokud je splněna nějaká uživatelem určená podmínka (příklad: teplota čidla překročí X stupňů).&lt;br /&gt;
&lt;br /&gt;
Funkce '''snmp_send_trap''' má jako parametry cílovou IP adresu, &amp;quot;PDU Specific&amp;quot; hodnotu (toto je namapováno na konkrétní OID) a index do tabulky, pokud je potřebný (pokud OID představuje řádek MIB tabulky).&lt;br /&gt;
&lt;br /&gt;
Každé zařízení SDS podporuje různý seznam TRAP zpráv (závisí to na hardwarové konfiguraci zařízení).&lt;br /&gt;
&lt;br /&gt;
Každá TRAP zpráva obsahuje v sobě tyto položky:&lt;br /&gt;
* &amp;quot;Enterprises&amp;quot; - výchozí OID určující zařízení SDS (konstanta) (určuje výrobce)&lt;br /&gt;
* &amp;quot;PDU Specific&amp;quot; číslo (někde taky jako &amp;quot;TRAP INDEX&amp;quot;) - toto je mapováno na konkrétní OID položky (úplný seznam viz ''tabulka OID'').&lt;br /&gt;
* &amp;quot;Table Index&amp;quot; číslo - pro položky v SNMP tabulce, kde je stejný výchozí OID, ale tabulkový index (řádek) se liší&lt;br /&gt;
* Identifikace odesílatele (konkrétní zařízení SDS - tj. IP adresa)&lt;br /&gt;
* Aktuální hodnotu (např. teplota čidla) - tato hodnota je vyplněna přímo zařízením SDS, v okamžiku odeslání TRAPu&lt;br /&gt;
&lt;br /&gt;
Aktuální hodnota je zvolena podle vybraného OID (tj. OID které je v TRAP zprávě), a formát aktuální hodnoty odpovídá přesně tomu, co by vrátilo SNMP GET.&lt;br /&gt;
&lt;br /&gt;
Tyto položky jsou vyhodnoceny na straně příjemce, a následně je vyvolána specifická akce (to už je na vás).&lt;br /&gt;
&lt;br /&gt;
== Postup ==&lt;br /&gt;
&lt;br /&gt;
Postup odeslání TRAP zprávy:&lt;br /&gt;
 1. FULL-C program vyhodnotí podmínky a rozhodne se odeslat TRAP zprávu&lt;br /&gt;
 2. FULL-C program zjistí, zda-li není právě odesílána jiná TRAP zpráva (pomocí '''snmp_send_trap_status'''), pokud ano tak se musí čekat...&lt;br /&gt;
 3. FULL-C program zavolá funkci snmp_send_trap() přičemž správně vyplní parametry funkce (cílovou IP adresu a TRAP INDEX)&lt;br /&gt;
 4. SDS sestaví TRAP zprávu, přičemž podle vybraného &amp;quot;PDU Specific&amp;quot; a &amp;quot;Table Index&amp;quot;, do zprávy vyplní hodnotu platnou v tomto okamžiku&lt;br /&gt;
 5. SDS se pokusí odeslat TRAP zprávu (pokud není ARP záznam, odeslání je odloženo, a místo toho se pošle ARP dotaz)&lt;br /&gt;
 6. Příjemce přijme TRAP zprávu a zpracuje ji.&lt;br /&gt;
 7. FULL-C program kontroluje stav (povedlo / nepovedlo) a případně opakuje odesílání&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hodnoty ==&lt;br /&gt;
&lt;br /&gt;
Všechny TRAP položky jsou přímo svázány s aktuální hodnotou, kterou lzezískat SNMP dotazem na konkrétní OID. Např. TRAP pro stav optického vstupu, v sobě nese hodnotu proměnné, kterou by stejný OID přesně v okamžiku odeslání TRAPu poskytl při svém přečtení (SNMP GET).&lt;br /&gt;
&lt;br /&gt;
Speciální TRAP je položka &amp;quot;sdsCustomVarTrap1&amp;quot;, který předává proměnnou, kterou lze předtím nastavit pomocí FULL-C funkce ''SDS_set_u(140, val);'' (tzn. zápis na index 140 nastavuje tuto hodnotu). Viz příklad &lt;br /&gt;
dále.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Příklad ==&lt;br /&gt;
&lt;br /&gt;
Nejprve je potřeba vědět, jaký vůbec TRAP chceme odeslat.&lt;br /&gt;
&lt;br /&gt;
Pro tento příklad použijeme SDS-BIG a vybereme si teplotu z druhého teplotního čidla připojeného na 1-WIRE sběrnici.&lt;br /&gt;
&lt;br /&gt;
V ''OID tabulce'' si najdeme správný řádek:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;filehistory&amp;quot; width=&amp;quot;99%&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''Full OID'''&lt;br /&gt;
| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''TRAP INDEX'''&lt;br /&gt;
| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''OID Type'''&lt;br /&gt;
| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''MIB Name'''&lt;br /&gt;
| style=&amp;quot;padding: 5px;background-color:#cdcdcd;&amp;quot;| '''Description        &lt;br /&gt;
              '''                            &lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| .1.3.6.1.4.1.33283.1.30.6.1.4.2&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| '''304 [2]'''&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| Integer&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| sdsOneWireFullValIDX0.2&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| (RO) First value received from 1-WIRE device.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
| style=&amp;quot;padding: 5px;&amp;quot;| ....&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A pro '''sdsOneWireFullValIDX0.2''' je odpovídající TRAP INDEX (PDU SPECIFIC) = '''304''' (hodnota před hranatými závorkami) a TRAP TABLE INDEX = '''2''' (hodnota v hranatých závorkách). Tyto údaje lze také zjistit z MIB souboru pro dané zařízení.&lt;br /&gt;
&lt;br /&gt;
Program v SDS-C tak zavolá funkci s těmito parametry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 unsigned int status;&lt;br /&gt;
&lt;br /&gt;
 unsigned int PDUspecificType, tableIndex;&lt;br /&gt;
 unsigned char ip0, ip1, ip2, ip3;&lt;br /&gt;
&lt;br /&gt;
 // PRO NÁŠ PŘÍKLAD:&lt;br /&gt;
  // ip1, ip2, ip3, ip4 =&amp;gt; jednotlivé části IP adresy cílového stroje (TRAP RECEIVER)  tzn.:  ip1.ip2.ip3.ip4 (a.b.c.d)&lt;br /&gt;
  // PDU SPECIFIC (TRAP INDEX) = 304&lt;br /&gt;
  // TABLE INDEX = 2 &lt;br /&gt;
  ip0 = a;&lt;br /&gt;
  ip1 = b;&lt;br /&gt;
  ip2 = c;&lt;br /&gt;
  ip3 = d;&lt;br /&gt;
  PDUspecificType = 304;&lt;br /&gt;
  tableIndex = 2;&lt;br /&gt;
 // ---&lt;br /&gt;
 &lt;br /&gt;
 // musíme začít s hodnotou 4 (požadavek na opakované odeslání)&lt;br /&gt;
 status = 4;&lt;br /&gt;
&lt;br /&gt;
 // smyčka (dokud se to nepovede odeslat)&lt;br /&gt;
 while (status == 4)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
  // požádáme SDS o odeslání TRAP&lt;br /&gt;
  snmp_send_trap(ip0, ip1, ip2, ip3, PDUspecificType , tableIndex );&lt;br /&gt;
&lt;br /&gt;
  // takže . . .&lt;br /&gt;
  status = snmp_send_trap_status();&lt;br /&gt;
 &lt;br /&gt;
  // okamžitý test, zda-li se nesnažíme odeslat TRAP dříve, než se dokončilo předchozí odesílání&lt;br /&gt;
  if (status == 5)&lt;br /&gt;
  {&lt;br /&gt;
    // v tomto případě, stále nebyla odeslána předchozí TRAP zpráva,&lt;br /&gt;
    // musíme proto chvíli počkat, a pak to zkusit znovu&lt;br /&gt;
 &lt;br /&gt;
    wait(250); // tady je škoda čekat, když by program mohl dělat něco jiného - to už je na vás&lt;br /&gt;
&lt;br /&gt;
    // a zkusíme to znovu (lehkým trikem)&lt;br /&gt;
    status = 4; continue;&lt;br /&gt;
  };&lt;br /&gt;
 &lt;br /&gt;
  // takže odesílání TRAPu probíhá, takže:&lt;br /&gt;
 &lt;br /&gt;
  // počkáme, dokud není zpráva odeslána&lt;br /&gt;
  while (status == 1)&lt;br /&gt;
  { &lt;br /&gt;
   status = snmp_send_trap_status();&lt;br /&gt;
   //&lt;br /&gt;
&lt;br /&gt;
   wait(100}; // dělej něco jiného, zatímco se čeká . . .&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  // v tuto chvíli je 'status' vyplněn finální hodnotou&lt;br /&gt;
 &lt;br /&gt;
  // pokud místo TRAP odešel ARP, musíme odeslat TRAP znovu&lt;br /&gt;
  if (status == 4) continue;&lt;br /&gt;
 &lt;br /&gt;
  // jiná chyba&lt;br /&gt;
  if ((status == 3)||(status == 6))&lt;br /&gt;
  {&lt;br /&gt;
   // byly použity špatné parametry (3) - zkuste použít správné hodnoty&lt;br /&gt;
   // nebo není dostatek paměti (6) - zkuste nějakou uvolnit&lt;br /&gt;
 &lt;br /&gt;
   printf(&amp;quot;Chyba. TRAP neodeslan.\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
   // nepokračuj&lt;br /&gt;
   break;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // jinak zřejmě hotovo:&lt;br /&gt;
  printf(&amp;quot;Hotovo, výsledek = %d\n&amp;quot;, status);&lt;br /&gt;
  break;&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Samozřejmě tato funkce se musí zavolat jen jednou pro odeslání TRAPu. Logika chování je už na programátorovi konkrétního FULL-C programu.&lt;br /&gt;
&lt;br /&gt;
Některé položky mají TABLE INDEX = '''0'''. To znamená, že se jedná o SNMP OID položku která není v tabulce, tj. která existuje jen jako jediná pro daný OID. V tomto případě použijte číslo nula na pozici TABLE INDEX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Příklad pro speciální TRAP (kde lze nastavit proměnnou v SNMP TRAP paketu pomocí FULL-C):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
 // nastav promennou kterou specialni TRAP prenese na server&lt;br /&gt;
 SDS_set_u(140, trapValue); &lt;br /&gt;
 // odesli trap [specialni TRAP =&amp;gt; 401, 0]&lt;br /&gt;
 snmp_send_trap(ip0, ip1, ip2, ip3, 401, 0);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Stavové hodnoty ==&lt;br /&gt;
&lt;br /&gt;
Program musí použít volání funkce '''snmp_send_trap_status''' pro zjištění okamžitého stavu - a to vždy před pokusem odeslat SNMP TRAP (aby se ověřilo, že se odesílání dá provést), a potom lze funkci '''snmp_send_trap_status''' využít pro ověření, že se odeslání skutečně povedlo (ne vždy se to povede, z různých důvodů). Pokud program zjistí, že se odeslání nepovedlo, měl by se to pokusit zopakovat znovu za &lt;br /&gt;
nějakou chvíli.&lt;br /&gt;
&lt;br /&gt;
 snmp_send_trap_status()    význam&lt;br /&gt;
 -------------------------+-----------------------------------------------------------------------&lt;br /&gt;
  0                       |  klid, můžete odeslat TRAP&lt;br /&gt;
  1                       |  pracuje (pokouší se odeslat TRAP), čekejte&lt;br /&gt;
  2                       |  provedeno&lt;br /&gt;
  3                       |  byly zadány neplatné parametry - zpráva neodeslána&lt;br /&gt;
  4                       |  místo TRAP zprávy byl odeslán ARP, takže musíte zopakovat odesílání&lt;br /&gt;
  5                       |  nebylo dokončeno odesílání předchozího TRAP, čekejte a zkuste znovu&lt;br /&gt;
  6                       |  nedostatek HEAP paměťi pro odeslání TRAP - zpráva neodeslána&lt;br /&gt;
&lt;br /&gt;
Pokud funkce '''snmp_send_trap_status''' vrátí hodnotu '''2''', je vše jak má být (OK). Jiné hodnoty (mimo 0 a 1) znamenají určitou situaci, kterou je potřeba řešit - ne vždy je to jednoznačně chyba, může stačit chvíli počkat a zkusit TRAP odeslat znovu.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Adamn</name></author>
	</entry>
</feed>