====== MIB Objekt zur Abfrage der Funkempfangsstärke ====== Um zu bestimmen, ob der Empfang zwischen SNMP Agent und 6LoWPAN Router ausreichend ist, wurde der aktuelle Wert der Funkempfangsstärke über SNMP abfragbar gemacht. Ermöglicht wird dies durch die Funktion rf230_get_raw_rssi(), welche sich ab Contiki 2.5 in den Radio Treibern für den AT86RF230 in der Datei rf230bb.c im Contiki Unterverzeichnis cpu\radio\rf230bb \ befindet. Die Funktion rf230_get_raw_rssi() nutzt wiederum die Funktion hal_register_read, diese ermöglicht es einzelne Register, wie z.B. das für die aktuelle Empfangsstärke, des AT86RF230 auszulesen. Es werden jedoch Werte von 0-84 dB in 1 dB Schritten zurückgeliefert. Diese Werte sind so zu interpretieren, dass 0 dem schlechtesten Empfangswert in dB entspricht und 84 dem besten Empfangswert. Um nun die Empfangsstärke in dBm zu berechnen, muss -91dBm als Startwert genommen werden und der Wert des Registers addiert werden. In folgenden Quellcode wurde dieser Vorgang in einer Get-Funktion umgesetzt. /** \brief RSSI value get function*/ s8t getRssiValue(mib_object_t* object, u8t* oid, u8t len) { int rssi_temp; rssi_temp=rf230_get_raw_rssi(); object->varbind.value.i_value = (-91)+(rssi_temp); //Already multiplicated with three return 0; }