contiki:a-n-solutions-module:contiki-snmp
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
contiki:a-n-solutions-module:contiki-snmp [2012/10/08 10:23] – [Port Pin Steuerung über SNMPv3 über LED DS1] sven_zehl | contiki:a-n-solutions-module:contiki-snmp [2017/01/24 18:49] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
===== Betriebszustandsanzeige über LED DS3 ===== | ===== Betriebszustandsanzeige über LED DS3 ===== | ||
- | Zur Signalisierung der Betriebszustandsanzeige | + | Zur Signalisierung der Betriebszustandsanzeige |
<code c> | <code c> | ||
+ | #include < | ||
+ | |||
/*Switch LED on @ANY Brick On if SNMPD started and set other LEDs as Output*/ | /*Switch LED on @ANY Brick On if SNMPD started and set other LEDs as Output*/ | ||
DDRB |= (1 << PIN5); | DDRB |= (1 << PIN5); | ||
Zeile 23: | Zeile 25: | ||
/*END LED @ANY Brick*/ | /*END LED @ANY Brick*/ | ||
</ | </ | ||
- | |||
===== Paketempfangssignalisierung über LED DS2 ===== | ===== Paketempfangssignalisierung über LED DS2 ===== | ||
Zeile 53: | Zeile 54: | ||
</ | </ | ||
- | ===== Port Pin Steuerung über SNMPv3 über LED DS1 ===== | + | ===== Pin Steuerung über SNMPv3 über LED DS1 ===== |
Zur Steuerung von LED DS2 wurden die GET und SET Funktionen innerhalb der Datei '' | Zur Steuerung von LED DS2 wurden die GET und SET Funktionen innerhalb der Datei '' | ||
Zeile 64: | Zeile 65: | ||
{ | { | ||
object-> | object-> | ||
- | #if PDEBUG | ||
- | printf(" | ||
- | #endif | ||
return 0; | return 0; | ||
} | } | ||
Zeile 74: | Zeile 72: | ||
s8t setBeuthState(mib_object_t* object, u8t* oid, u8t len, varbind_value_t value) | s8t setBeuthState(mib_object_t* object, u8t* oid, u8t len, varbind_value_t value) | ||
{ | { | ||
- | //DDRB |= (1 << PIN5); //moved to SNMPD Process Start | ||
- | //DDRB |= (1 << PIN7); | ||
if (value.i_value == 1) { | if (value.i_value == 1) { | ||
PORTB &= ~(1 << PIN5); | PORTB &= ~(1 << PIN5); | ||
- | //PORTB |= (1 << PIN6); | ||
} else { | } else { | ||
PORTB |= (1 << PIN5); | PORTB |= (1 << PIN5); | ||
- | //PORTB &= ~(1 << PIN7); | ||
} | } | ||
Zeile 90: | Zeile 84: | ||
</ | </ | ||
===== Messung der Versorgungsspannung über ADC0 bei Anschluss eines 1:1 Spannungsteilers über die Versorgungsspannung ===== | ===== Messung der Versorgungsspannung über ADC0 bei Anschluss eines 1:1 Spannungsteilers über die Versorgungsspannung ===== | ||
+ | Zur Messung der Versorgungsspannung wurde der PIN des ADC0 mit einem Spannungsteiler beschaltet. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Als Referenzspannung wurden die stabilen intern verfügbaren 2,54V des Mikrocontrollers verwendet. Zur Initialisierung des ADCs sowie zur Abfrage des aktuellen Wertes sind die folgenden Funktionen innerhalb der Datei '' | ||
+ | |||
+ | <code c> | ||
+ | |||
+ | /* battery power level*/ | ||
+ | / | ||
+ | |||
+ | /** \brief function for initialization of the adc*/ | ||
+ | void adc_init() | ||
+ | { | ||
+ | // AREF = AVcc | ||
+ | ADMUX = (1<< | ||
+ | |||
+ | // ADC Enable and prescaler of 128 | ||
+ | // 16000000/ | ||
+ | ADCSRA = (1<< | ||
+ | } | ||
+ | |||
+ | /** \brief adc read function */ | ||
+ | u16t adc_read() | ||
+ | { | ||
+ | ADMUX = (ADMUX & 0xF8)|0; | ||
+ | // start single convertion | ||
+ | // write ' | ||
+ | ADCSRA |= (1<< | ||
+ | // wait for conversion to complete | ||
+ | // ADSC becomes ' | ||
+ | // till then, run loop continuously | ||
+ | while(ADCSRA & (1<< | ||
+ | |||
+ | return (ADC); | ||
+ | } | ||
+ | |||
+ | /** \brief get function for the battery power level mib object*/ | ||
+ | s8t getBattValue(mib_object_t* object, u8t* oid, u8t len) | ||
+ | { | ||
+ | adc_init(); | ||
+ | u16t adc_value; | ||
+ | int batt_level; | ||
+ | adc_value=adc_read(); | ||
+ | batt_level=(((25400)/ | ||
+ | // | ||
+ | | ||
+ | object-> | ||
+ | return 0; | ||
+ | } | ||
+ | /*Battery Level end*/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Download und Kompilierung ===== | ||
+ | |||
+ | Der komplette Quellcode kann hier heruntergeladen werden: {{: | ||
+ | - Der Ordner '' | ||
+ | - Der Ordner '' | ||
+ | - Der Ordner '' | ||
+ | - Die Datei '' | ||
+ | Der Kompilierungsvorgang wird anschließend innerhalb des Ordners ''/ | ||
+ | |||
+ | __Hinweise: | ||
+ | * Innerhalb des Makefiles kann die MAC Adresse über die Compilerflags '' | ||
+ | |||
+ | <code c> | ||
+ | #CFLAGS+= -DMAC_CONF_FREQUENCY=0x09 #900MHz | ||
+ | CFLAGS+= -DMAC_CONF_FREQUENCY=0x24 #2400MHz | ||
+ | CFLAGS+= -DMAC_CONF_NUMBER=0x02 | ||
+ | </ | ||
+ | * Standardmäßig werden alle Knoten als Router konfiguriert um somit vermaschtes Routing verwenden zu können, dies ist über das Flag '' | ||
+ | * Die Verwendung von Contiki SNMP ist in [[https:// |
contiki/a-n-solutions-module/contiki-snmp.1349691782.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)