From 7b3a6250f09eb5511210167ac816b9f2f48d77c4 Mon Sep 17 00:00:00 2001 From: Janno Schouwenburg Date: Wed, 10 Aug 2022 16:07:31 +0200 Subject: [PATCH] Bats support (#14108) * BATS support * Removed disabled discovery modules * Style change, more test data, removed unused rows * Style correction LibreNMS/OS/Bats.php * Removed old reference * Another style correction add LibreNMS/OS/Bats.php * Changed location info and temperature * Style, again * Style, again * New testdata needed * Fix wrong state color in discovery/bats.yaml * New test data * Update bats_bats.json * Saved the test data in a different way * More test data * Manually changed test data * New test data * New test data * Update bats_bats.json * Saved the test data in a different way * More test data * Manually changed test data * New test data * New test data * Delete bats_bats.snmprec * Update bats.json * Update bats.json Co-authored-by: Maikel de Boer Co-authored-by: Tony Murray --- LibreNMS/OS/Bats.php | 69 ++ html/images/logos/bats.png | Bin 0 -> 7471 bytes html/images/os/bats.png | Bin 0 -> 667 bytes includes/definitions/bats.yaml | 11 + includes/definitions/discovery/bats.yaml | 155 +++ mibs/bats/AATS-MIB | 1298 ++++++++++++++++++++++ tests/data/bats.json | 615 ++++++++++ tests/snmpsim/bats.snmprec | 98 ++ 8 files changed, 2246 insertions(+) create mode 100644 LibreNMS/OS/Bats.php create mode 100644 html/images/logos/bats.png create mode 100644 html/images/os/bats.png create mode 100644 includes/definitions/bats.yaml create mode 100644 includes/definitions/discovery/bats.yaml create mode 100644 mibs/bats/AATS-MIB create mode 100644 tests/data/bats.json create mode 100644 tests/snmpsim/bats.snmprec diff --git a/LibreNMS/OS/Bats.php b/LibreNMS/OS/Bats.php new file mode 100644 index 0000000000..cbd1a8d956 --- /dev/null +++ b/LibreNMS/OS/Bats.php @@ -0,0 +1,69 @@ +. + * + * @link https://www.librenms.org + * + * @copyright 2017 Tony Murray + * @author Tony Murray + */ + +namespace LibreNMS\OS; + +use App\Models\Location; +use LibreNMS\Device\WirelessSensor; +use LibreNMS\Interfaces\Discovery\OSDiscovery; +use LibreNMS\Interfaces\Discovery\Sensors\WirelessRssiDiscovery; +use LibreNMS\Interfaces\Discovery\Sensors\WirelessSnrDiscovery; +use LibreNMS\OS; + +class Bats extends OS implements + OSDiscovery, + WirelessSnrDiscovery, + WirelessRssiDiscovery +{ + public function fetchLocation(): Location + { + $location = parent::fetchLocation(); + $lat = snmp_get($this->getDeviceArray(), 'AATS-MIB::networkGPSLatitudeFloat.0', '-Oqv'); + $lng = snmp_get($this->getDeviceArray(), 'AATS-MIB::networkGPSLongitudeFloat.0', '-Oqv'); + $pointing = snmp_get($this->getDeviceArray(), 'AATS-MIB::status.0', '-Oqv'); + + return new Location([ + 'location' => 'At ' . (string) $lat . ', ' . (string) $lng . '. ' . $pointing, + 'lat' => $lat, + 'lng' => $lng, + ]); + } + + public function discoverWirelessSnr() + { + $oid = '.1.3.6.1.4.1.37069.1.2.5.3.0'; + + return [ + new WirelessSensor('snr', $this->getDeviceId(), $oid, 'bats', 0, 'SNR'), + ]; + } + + public function discoverWirelessRssi() + { + $oid = '.1.3.6.1.4.1.37069.1.2.4.3.0'; + + return [ + new WirelessSensor('rssi', $this->getDeviceId(), $oid, 'bats', 0, 'RSSI'), + ]; + } +} diff --git a/html/images/logos/bats.png b/html/images/logos/bats.png new file mode 100644 index 0000000000000000000000000000000000000000..f835919735557489c96f70e0194f1af9424b9857 GIT binary patch literal 7471 zcmV+~9nj*5P)RCwBAU>GRC!p{C5Mnmy8TG+z` zwL}WpQYh#G@*Ak`F%a?R=g((A!{LHJKI26NBe3PKnEuI&{bNc1v41l#95s1x&gP7w zQ4#BZhF*}^Gv>d_!vB~K0p&jP{AbjF8gT%qS&5N>K@PqG6VSfYe{+yJq*#%fKxA!1S*`|G_y&m}MXUw9Eix8Bm;&37_|Y zn$*uqYM)0I133ny@h=0zENpu0?_HQkFi3F$kijrZu+hZmMOV*)9F%B@21Vfy#{U@{ z{~2fCG6)%*QZ(#f|Ib*CO%5P{1}qPnLG#`-SU#kcU5r@r9|$x;>7~G+zD@Of2n5%G zSQAGcdSAWeZIxZH;V@>%9w! zKua31WeeogX#C)uB@$m0hSAm-Z76t<5lalt08;5dTnfb9P~lD>F2|Rg&;c-;2LZGB zdP126l$6dX81XOzt8Z$14rDeXG078@InO8>7PJ0m>_HYcetva6C?6tcUR-$qS3L$Q z6OoIlbBabMng27G5t|or<~3q!dsyiMX~Up;4g`QPnh0g0So(wMzZsH)egY}Bugw3| zt?r(`h3-J40v`@e&P%t_R zRABUnkzuLv{c|ydDlVWI3xKWN1Xcz{2Yks7$Y&y^A_V4td7Om|dY&YuVEGPAnwxN*-7B0IG|WK`mb_denjW@z#*>9MDti zfK(tU8j-7wK_7EOB*#W99&8v&$#Oc7@`7^ZP z1M5~@w7TovZ(!c%`Oo+Q)PqF#7)akA#{Xi{q znw0k)m(p6n_Mg$1kjMTpFsuaD#^I#YX~0IgFuX0QVB`Y~jO*c_asttK2Q*XAm|sR=%>;al=efR7EJra1}at% zDIzE+3O*2DG0_W+C=oSxK}=BNiFs%evpfBbH&?dTy_wlHr+&!5uzUNT*ZzP1=ggie z{i#NMMuyA#nVxFUi_#M6mg#_2KvLVEJgyF<0xfb;1Uc=)EPhLgj{^`MpEqae!)@75 zKIVFfS^_|aH91FF>qcDud<*mL1BhFO*`EW=6F_o@`l+8mk;pb8-uADr{*k_DSAc87=)A1}qI--f#MA4LD)mKGV=5FMc+OcN?n$ z?-J^lvO&P`Q(*p5=R+`2X=?LqdQyj>J(L|r(pY~lU>)3WuQ}<~=6WQ0D8$J6^lxzC zXhkCSm9xz&N;=VIoNTU!h`F;e-t@l@JMtMluJRJu2++EY9JtV8-Dp!wBAki4#yQV% zNK2CoX&dSoFIwj^*9z2Lm#&|n{;CS#F#dl8`9@iEF&>VN zvk=ZI9q`Ih<}&~%?E`YX!N~kVn;vtRt6E6?b}#1U z)(ESmqF?J(p>^gimDa(^tjb1vN!jW!qaOqa-K)F76=YKL+>G~~<7s>BT^C63H{Aw% z+DYx6LCW}P1%V{@O|XpyM24+i#!72^X5r%rCfK+ixL6P*)jihhXQKoy9kizSm?}>~ ztgY&9Q%9C{FM5O5wy)&9if?VX`9P=fKLW6K{IN}x(eJyi+t`-iPznetWylC~W$jQL zpdvyHhJXp007k=)fQA490}Ua{F9~8414{hK#3;rn8e)i1jBI~M7y;YyOPrW>5=fW? zWE(APYwz>D_6pbI?!K?rD{M($(saH1?z`{ayZ7^Z@6Fr^jO)BCbVHCh=fgm}$Fpea zVE{yHRf=TZ$YP_L(S~#0seG>n;zhw&S))T-jA9^HCeq=WQP;!RkFw~!J=}Ihr##K4 zoLk2!V^e=V%VN`hFxo-DJd*)7-|HRV!WCJR+i08sp?WLDpfljp$RXM<7VlM!T%1L@ zjXDlE0iyx~0kPN@qBrLntQMbS@qUFUK6^q>`?oA9qHh?~pr4d3hZFO7c#XhkvbDmRdR}%eSKe(>+ngdEtj=v0ZZ%tvi%M@>R-?=QG-hm6~0^ zltql*&(rG>!eVLqG9~A784ba+6v4BMl4Dzl#I)N0Tysrgq#nlR;B_!Q0@vPTeZ#ro zaJ)Z{<2I#;uZ|nYpzrbqPd;~Qwnj87JKo;ePDcA#B^qX-S-CDGu{Xyy1?K6U6WARO zS2hO*8tB^H@HO4!ZNK0R`dz8473Lgt-H+3Om1$TzLpTqL8;!afh&-ZU?I^gxgTl>7fM}NciFHx7$^;kFO?5G43sb#cMYI2`8R1feW5TRS*-GHBE``e?ifA5& zX?Q%iM%hNa<8#YObDWH*Lu+zn&_7FLJ>Lv1zr%!sXYj5c9Sm%1jQBTiiNI$ixk$P%k>_93@-8t-|EnN%;D7Ycf`0z~rBq>xvt00@6iOSG6MqhyhV zx%%Wer1PNEcW}gHtpQimsr^x~1{T+xY>dPa&vpweVZ6y(UB&Y}j81^qw>3KrtkVWe zih)a>1BCC=vC_Csua!JR;GCnQg8m8G;|IZMmXZruE{tySzn}O4Rv3!U1y%{i z7yHKj2^{f0LAJueaKY*tLe{3Eru2)x0 z@;I$PflN2@#+X#{jLih$WXithiOL!@);RNE|BBZ@WNuKzl1K&6IvoQ5oz7~r`&6~% zoPh7)DkBKRMPJn%?Y$U{TFtWhc-RAXE%@t1QW+Pl$zzH{A$wA$47qwMd*-?c+3`Z#2=MuTKb(yg_Mkn%1kip8BN z`fnc^o88gF#oSGl^uQ>{+)B)g7!lE5z~?x8E(@`_L8E{z9uGHdo01#c+((u!+O9h^ zF<7uvALU*1P%!Y8p|#U|G!&uS0+iImBq5)Q`f(Uz`@?{+TQp&qHM|>FHv7NUJN`(! zgBv{n<7B^r&|{f+dqK=j)3_d+(w(z1=*P;WB_d;gC>iOxFY0J94L(T8|4P8D2;>xq zLCn}4pktVP1?Oj}-i8%c1q1kRLaBd;-M%>zBjq;~H8~HzpA~dzQWB%Qf<=rm+WF!z z2hHX6n6GN`9~O?B0CDa%sGq|^!&#~aE#moMCa3evEh%zvyJuu>Zd=S?x(?o;UpSd5 zovKy+x1TMubG~~!rDYs3dDTkD3oWEB9j@yOguSq(yu5(dBK@0p-e= z!G97-_Fc%Lacz#IC{0M|L1!n-Ei0upCmY#sZtr8<&|6brmsx-zLdcKsd~Zwfnu9iS zbLYlH)TOhNl7S#OmYdx#Oxg1(6Ap-j;UlWUc^G}4IHBFSfj5UMDlK*C*g=9BLrK;f zVB+&JN`E~&VSc#a8DQyei^SX-PIxNT&h{xWRly%KHW>I$$f`6TAmUkVU_7B9e|e@% zUT~_n!u(17ReU-%V|GA3quZ3{@sVx>vcc|oN|6&F-b{snv3;>UgUTjmVzHnT>%g3T z39P-BZxw<75&c2Tz1ockhI*|KeBa9kT%9@q@kZhI(`QenAo0ZEg%QJYtHVXB&N!ko zF{L44d=<-5%8lQ4mw28$O(Sz|QrwJoO7R3J6C%cl92QB|rzD!W^TOxO>y(ciaj)Kn$E6j6s;|^9dq8H$Zpvi6(7NreAZKl3LPf z>L1o86X`q0>n*>7&-o63Z*lr{rzsie7IhC6Cw`V|n{jv&Lc|vIowm82)SNtj#x(8e z*Pf=7u<2m2;?XLr!JjL&k5$@ya!6jG#7v!6Pbh^53%5|xmPN>w3`SeRl(dEks}50e z>Q~_}KRj{%bD{UEbjbw{W+W@Eaq=i&2(rm|v)4jw^7$ICPm;NA#o?LsZe1P z3wV)(k(44B@8VM~rLD;C{RQu}j=SUsL;_ADEa0=J3$S0XvD5(^EQxa}VMnwgcKwny z_n#DXNWwJe01)W6nPLmaI@7Fv3am=mU*Fz;oc<+13 zuI4{fTXovJ<3!m6()~yJrVM|u0oWR40J=Gr)n2!&`WJ_O(SO%Q^{CH4Ou98cF;H_bmyjh6JTj?u%0P_OVNsE&`}#XMiXeKIVGW(r~3AgJPX4R#Ic_SUXfYTg0zc$+^ zH*86{OsLkaAPa^f~F0hl1LUwd*oC zA6*4$cibL>*=z4m0#!R3+TaJ41nVg3!DwqHqm7P^1CK#q>L0^z=t$hJ1iYsWFgnA; z(&2TCe^qbiRtx7vQ-);(YXtUUx$usN4{HBv{g;lFes9biJBMBJ zd>HqKyaPth+E~ADut}S96{x^mDtM5P4~hfcpP1>hXM{X>V31xQDL}0fn>C@{x7)H! zM~H4tAtO`*z`YC~myyN}mD~;k7nx3PSh&M@00&&{2&hSzR-h+xl z9^gPqKOPToNN;6b-z8!aU<`xyxeJSpwl5n|IMBw7WjE6WokUDW*z^in&+C7?shzMn zT#ghJJ_5#pwo^S8AlGYj$R!s$I!-1eC51sc0>}=6jkT$rk{@2Rvw2{bYy_~i80mk) ztvofU(SAdxxWkn;!tN>xcy)^|eDKLR++wK^@l3#Y<{NE0Bq%*A#muR8Hw5L!QQYW=Y?792ueR1=Mfxe#& zFX8}9dXbK^~|*Ki;}g4xyccq;&T3IOkL=a0u-vd1nU4C$hz_L)&% z^_7Viif-#SdG48|Mv8gG1l=*0JPlai-tM>@*h$M_EXI#PsbXG+jSvsqcQQz8UC9Z6 zdzSZJz*zoi7I3LXDv4iq$!z{TOq}?Rz_B6d4*~GrjPeBWdn_sWiy6Ra_7iuQ6-;K# z5=%a(va1K9ds9Fi(skW0>?ktx8t;9;)_KlKKVS&uVak91+aTqdiUYp)^%gxb3B1Js z5_CHJz+~6=pznehDr-;p%7^cJcMKbqLxUYzP{Bh-FAKQG)`@AaKn@0^gSv=DpUg~Kyc@))m1+e#T` zCL;%3vNMO!Pl01*>b#iwMSkyAk&ES&Q~4ZT<`4mw!j0ZrK)2d9@Oj`YT!GghcFJbg zRo5je(>d;vAE%5j*Z?H&s(1y{EZKB1fQLzp@I|aM*rjj0w%-Zcxa-`5UH1Fm)YM!z z+P<`)Aft~e?G#`Ot(gQW6WDHRdNJzP0UXv+&Jhi`$QWqk{2@05No?ty!zlOZk|wH} z4jDV-Dx3{qSYo7u=jwzpvY9CZT8kK#HMQHF8pVF@W`^L*|%U zp4mgC|4KzK6>#q}O_EyDTa|FnDeeY)D`E2{1bo{PHIDu6!ot3)Qq*qft_v=y492Y~c*Es7tV5_-n+1^{S; zbuG#pY0DH)Bj-*KaJC&VfhPfQwebK4wqDzp4mKo_fJ0gqzEnj7Z6JWOzIh7cm{a!f z0#1{l+bqs;UJ5YYZAJmdWz%&7K2+IuYSItg&=~48zDqMq6EJ#dOV2V;$L>urylsNj zeco;$tza8vB@dtTB|KJejcwp8fSeE}3LtwFz$Ra@ss79`6%uL&>S>cD?TL`tNi5w? z{FjAh&kcNh+2k`NSQ@mqW98HdQ7Y(YO$BWR)u9#)qTD2$Pc=x{XLwu#za>Iz8fbXK ztorIJl`dt8gOT-;@d-}&cEN#Md2V)?ZWsFAY?9X|*;Fa43ITG+Lf9B+L7AjkSOgT` tg1`e2gj50(-FHD!*UhV|zH0Sa{{z6y-mzoNL|*^^002ovPDHLkV1gb&A@KkJ literal 0 HcmV?d00001 diff --git a/html/images/os/bats.png b/html/images/os/bats.png new file mode 100644 index 0000000000000000000000000000000000000000..321794d83db2d615d439e64f7f453ce0014217cf GIT binary patch literal 667 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8!2v z2N=7Z%(i1-VBF#9;uzv_eCgEl+Ae`2$L&q(R9rR+Xe*xT5Aw<};m!&Yn-ZC!6z#R9 zwKZtdgirhvHc3Y&s0Y@q$#7E22?*|Rss* zC)71f3%n|g8hGM3FTIcnII1jlKG3DB=4IlP%w-Y_=QjO#n0m*nBI9nLhvDRy|FCEBoogp#Pmq?sVn(M7+Rcg>Yz2V%;Hg0c+jI*ylznHYES8sPAqf~avs*bFi z4to#ZvuEf{&D^vo=h=^*e?JZ$+|SUf zUVgf)L#HSA@wZPud}pXXp_}P^S>%>RBk6^>*)CU}UP6xJHzuB$lLFB^RXvDF!10Lo;0iV_gHI5CcmqV>2sbQ(XfK zD+7ZMzL9fLH00)|WTsW(*3c;MP!Xs>5@bVgep*R+Vo@rCV@iHfs)A>3VtQ&&YGO)d T;mK4RpdtoOS3j3^P6.*) v(?[0-9.]*);.*;SN: (?[0-9]+);/' + diff --git a/mibs/bats/AATS-MIB b/mibs/bats/AATS-MIB new file mode 100644 index 0000000000..6517ed6f56 --- /dev/null +++ b/mibs/bats/AATS-MIB @@ -0,0 +1,1298 @@ + +AATS-MIB DEFINITIONS ::= BEGIN + +IMPORTS + MODULE-IDENTITY, OBJECT-TYPE, Integer32, IpAddress, enterprises + FROM SNMPv2-SMI + MODULE-COMPLIANCE, OBJECT-GROUP + FROM SNMPv2-CONF + DisplayString + FROM SNMPv2-TC +; + +aats MODULE-IDENTITY + LAST-UPDATED "202102241815Z" + ORGANIZATION "Broadband Antenna Tracking systems" + + CONTACT-INFO + "E-mail: support@batswireless.com" + DESCRIPTION + "The MIB Module for BATS Software." + REVISION "202102241815Z" + DESCRIPTION + "Updated on 202102241815." + ::= { enterprises 37069 } + +-- +-- top level structure +-- + +aatsDot1 OBJECT IDENTIFIER ::= { aats 1 } +system OBJECT IDENTIFIER ::= { aatsDot1 1 } +radio OBJECT IDENTIFIER ::= { aatsDot1 2 } +linkStatus OBJECT IDENTIFIER ::= { radio 3 } +rssi OBJECT IDENTIFIER ::= { radio 4 } +snr OBJECT IDENTIFIER ::= { radio 5 } +linkDistance OBJECT IDENTIFIER ::= { radio 6 } +remote OBJECT IDENTIFIER ::= { radio 7 } +positioner OBJECT IDENTIFIER ::= { aatsDot1 3 } +positionerDot1 OBJECT IDENTIFIER ::= { positioner 1 } +azimuth OBJECT IDENTIFIER ::= { positionerDot1 3 } +elevation OBJECT IDENTIFIER ::= { positionerDot1 4 } +antennaHeading OBJECT IDENTIFIER ::= { positionerDot1 5 } +currentGPSHdgAcl OBJECT IDENTIFIER ::= { aatsDot1 4 } +currentGPSStatus OBJECT IDENTIFIER ::= { currentGPSHdgAcl 2 } +currentGPSTimestamp OBJECT IDENTIFIER ::= { currentGPSHdgAcl 3 } +currentGPSLatitude OBJECT IDENTIFIER ::= { currentGPSHdgAcl 4 } +currentGPSLongitude OBJECT IDENTIFIER ::= { currentGPSHdgAcl 5 } +currentGPSAltitude OBJECT IDENTIFIER ::= { currentGPSHdgAcl 6 } +currentHeadingSection OBJECT IDENTIFIER ::= { currentGPSHdgAcl 7 } +currentHeadingStatus OBJECT IDENTIFIER ::= { currentHeadingSection 1 } +currentHeading OBJECT IDENTIFIER ::= { currentHeadingSection 2 } +currentAccel OBJECT IDENTIFIER ::= { currentGPSHdgAcl 8 } +currentPitch OBJECT IDENTIFIER ::= { currentAccel 1 } +currentRoll OBJECT IDENTIFIER ::= { currentAccel 2 } +localGPSHdgAcl OBJECT IDENTIFIER ::= { aatsDot1 5 } +localGPSStatus OBJECT IDENTIFIER ::= { localGPSHdgAcl 2 } +localGPSTimestamp OBJECT IDENTIFIER ::= { localGPSHdgAcl 3 } +localGPSLatitude OBJECT IDENTIFIER ::= { localGPSHdgAcl 4 } +localGPSLongitude OBJECT IDENTIFIER ::= { localGPSHdgAcl 5 } +localGPSAltitude OBJECT IDENTIFIER ::= { localGPSHdgAcl 6 } +localHeadingSection OBJECT IDENTIFIER ::= { localGPSHdgAcl 7 } +localHeadingStatus OBJECT IDENTIFIER ::= { localHeadingSection 1 } +localHeading OBJECT IDENTIFIER ::= { localHeadingSection 2 } +localAccel OBJECT IDENTIFIER ::= { localGPSHdgAcl 8 } +localPitch OBJECT IDENTIFIER ::= { localAccel 1 } +localRoll OBJECT IDENTIFIER ::= { localAccel 2 } +networkGPSHdgAcl OBJECT IDENTIFIER ::= { aatsDot1 6 } +networkGPSStatus OBJECT IDENTIFIER ::= { networkGPSHdgAcl 2 } +networkGPSTimestamp OBJECT IDENTIFIER ::= { networkGPSHdgAcl 3 } +networkGPSLatitude OBJECT IDENTIFIER ::= { networkGPSHdgAcl 4 } +networkGPSLongitude OBJECT IDENTIFIER ::= { networkGPSHdgAcl 5 } +networkGPSAltitude OBJECT IDENTIFIER ::= { networkGPSHdgAcl 6 } +networkHeadingSection OBJECT IDENTIFIER ::= { networkGPSHdgAcl 7 } +networkHeadingStatus OBJECT IDENTIFIER ::= { networkHeadingSection 1 } +networkHeading OBJECT IDENTIFIER ::= { networkHeadingSection 2 } +networkAccel OBJECT IDENTIFIER ::= { networkGPSHdgAcl 8 } +networkPitch OBJECT IDENTIFIER ::= { networkAccel 1 } +networkRoll OBJECT IDENTIFIER ::= { networkAccel 2 } + +status OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current system status" + ::= { system 1 } + +active OBJECT-TYPE + SYNTAX INTEGER { inactive(0), active(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specifies if the system is currently active. When an integer 1 is set, the system will restart the scan sequence. When an integer 0 is set, the system will stop" + ::= { system 2 } + +stowed OBJECT-TYPE + SYNTAX INTEGER { unstowed(0), stowed(1) } + MAX-ACCESS read-write + STATUS current + DESCRIPTION + "Specifies if the system is currently stowed. When an integer 1 is set, the system will begin stowing. When an integer 0 is set, the system will begin unstowing. (Additional license is required)" + ::= { system 3 } + +cpuTemp OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies if the cpu temperature in celsius (-1000 if n/a)" + ::= { system 4 } + +radioName OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies the current radio name" + ::= { radio 1 } + +radioConnected OBJECT-TYPE + SYNTAX INTEGER { disconnected(0), connected(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies if the radio is currently connected" + ::= { radio 2 } + +linkStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify Link Status" + ::= { linkStatus 1 } + +linkStatusInt OBJECT-TYPE + SYNTAX INTEGER { disconnected(0), marginal(1), connected(2) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current link status from the radio 0 = Disconnected, 1 = Marginal, 2 = Connected" + ::= { linkStatus 2 } + +linkStatusVal OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current link status from the radio Disconnected, Marginal, or Connected" + ::= { linkStatus 3 } + +rssiString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify RSSI" + ::= { rssi 1 } + +rssiInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current rssi from the radio, divde by 100 to get actual value" + ::= { rssi 2 } + +rssiFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current rssi from the radio" + ::= { rssi 3 } + +snrString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify SNR" + ::= { snr 1 } + +snrInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current snr from the radio, divde by 100 to get actual value" + ::= { snr 2 } + +snrFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current snr from the radio" + ::= { snr 3 } + +linkDistanceString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify Link Distance" + ::= { linkDistance 1 } + +linkDistanceMeters OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current calculated link distance from the radio in meters" + ::= { linkDistance 2 } + +linkDistanceMiles OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current calculated link distance from the radio in miles" + ::= { linkDistance 3 } + +remoteString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify Remote" + ::= { remote 1 } + +remoteIP OBJECT-TYPE + SYNTAX IpAddress + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The IP address of the remote radio reported from the local radio. NOTE: Not available on all radios" + ::= { remote 2 } + +remoteMAC OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The MAC address of the remote radio reported from the local radio. NOTE: Not available on all radios" + ::= { remote 3 } + +positionerConnected OBJECT-TYPE + SYNTAX INTEGER { disconnected(0), connected(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies if the positioner is currently connected" + ::= { positionerDot1 1 } + +positionerMoving OBJECT-TYPE + SYNTAX INTEGER { stopped(0), moving(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "Specifies if the positioner is currently moving" + ::= { positionerDot1 2 } + +azimuthString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify azimuth" + ::= { azimuth 1 } + +azimuthInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current azimuth from the positioner in degrees (-180 - 180), divde by 100 to get actual value" + ::= { azimuth 2 } + +azimuthFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current azimuth from the positioner in degrees (-180 - 180)" + ::= { azimuth 3 } + +azimuth360ScaleInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current azimuth from the positioner in degrees (0 - 360), divde by 100 to get actual value" + ::= { azimuth 4 } + +azimuth360ScaleFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current azimuth from the positioner in degrees (0 - 360)" + ::= { azimuth 5 } + +elevationString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify elevation" + ::= { elevation 1 } + +elevationInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current elevation from the positioner in degrees, divde by 100 to get actual value" + ::= { elevation 2 } + +elevationFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current elevation from the positioner in degrees" + ::= { elevation 3 } + +antennaHeadingString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify Antenna Heading" + ::= { antennaHeading 1 } + +antennaHeadingInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current antenna heading in degrees (-180 - 180), divde by 100 to get actual value" + ::= { antennaHeading 2 } + +antennaHeadingFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current antenna heading in degrees (-180 - 180)" + ::= { antennaHeading 3 } + +antennaHeading360ScaleInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current antenna heading in degrees (0 - 360), divde by 100 to get actual value" + ::= { antennaHeading 4 } + +antennaHeading360ScaleFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current antenna heading in degrees (0 - 360)" + ::= { antennaHeading 5 } + +currentGPSHdgAclString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current GPS/Heading/Accel" + ::= { currentGPSHdgAcl 1 } + +currentGPSStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current GPS Status" + ::= { currentGPSStatus 1 } + +currentGPSStatusInt OBJECT-TYPE + SYNTAX INTEGER { invalid(0), valid(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Status" + ::= { currentGPSStatus 2 } + +currentGPSStatusValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Status" + ::= { currentGPSStatus 3 } + +currentGPSTimestampString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current GPS Timestamp" + ::= { currentGPSTimestamp 1 } + +currentGPSTimestampInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Timestamp, divde by 1000 to get actual value" + ::= { currentGPSTimestamp 2 } + +currentGPSTimestampValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Timestamp" + ::= { currentGPSTimestamp 3 } + +currentGPSLatitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current GPS Latitude" + ::= { currentGPSLatitude 1 } + +currentGPSLatitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Latitude, divde by 10000 to get actual value" + ::= { currentGPSLatitude 2 } + +currentGPSLatitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Latitude" + ::= { currentGPSLatitude 3 } + +currentGPSLongitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current GPS Longitude" + ::= { currentGPSLongitude 1 } + +currentGPSLongitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Longitude, divde by 10000 to get actual value" + ::= { currentGPSLongitude 2 } + +currentGPSLongitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Longitude" + ::= { currentGPSLongitude 3 } + +currentGPSAltitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current GPS Altitude" + ::= { currentGPSAltitude 1 } + +currentGPSAltitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Altitude in meters, divde by 100 to get actual value" + ::= { currentGPSAltitude 2 } + +currentGPSAltitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Altitude in meters, divde by 100 to get actual value" + ::= { currentGPSAltitude 3 } + +currentGPSAltitudeFeetInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Altitude in feet, divde by 100 to get actual value" + ::= { currentGPSAltitude 4 } + +currentGPSAltitudeFeetFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current GPS Altitude in feet" + ::= { currentGPSAltitude 5 } + +currentHeadingStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current Heading Status" + ::= { currentHeadingStatus 1 } + +currentHeadingStatusInt OBJECT-TYPE + SYNTAX INTEGER { invalid(0), valid(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current Heading Status" + ::= { currentHeadingStatus 2 } + +currentHeadingStatusValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current Heading Status" + ::= { currentHeadingStatus 3 } + +currentHeadingString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current Heading" + ::= { currentHeading 1 } + +currentHeadingInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current heading in degrees (-180 - 180), divde by 100 to get actual value" + ::= { currentHeading 2 } + +currentHeadingFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current heading in degrees (-180 - 180)" + ::= { currentHeading 3 } + +currentHeading360ScaleInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current heading in degrees (0 - 360), divde by 100 to get actual value" + ::= { currentHeading 4 } + +currentHeading360ScaleFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current heading in degrees (0 - 360)" + ::= { currentHeading 5 } + +currentPitchString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current pitch" + ::= { currentPitch 1 } + +currentPitchInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current pitch in degrees (-180 - 180), divde by 100 to get actual value" + ::= { currentPitch 2 } + +currentPitchFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current pitch in degrees (-180 - 180)" + ::= { currentPitch 3 } + +currentRollString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify current roll" + ::= { currentRoll 1 } + +currentRollInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current roll in degrees (-180 - 180), divde by 100 to get actual value" + ::= { currentRoll 2 } + +currentRollFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The current roll in degrees (-180 - 180)" + ::= { currentRoll 3 } + +localGPSHdgAclString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local GPS/Heading/Accel" + ::= { localGPSHdgAcl 1 } + +localGPSStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local GPS Status" + ::= { localGPSStatus 1 } + +localGPSStatusInt OBJECT-TYPE + SYNTAX INTEGER { invalid(0), valid(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Status" + ::= { localGPSStatus 2 } + +localGPSStatusValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Status" + ::= { localGPSStatus 3 } + +localGPSTimestampString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local GPS Timestamp" + ::= { localGPSTimestamp 1 } + +localGPSTimestampInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Timestamp, divde by 1000 to get actual value" + ::= { localGPSTimestamp 2 } + +localGPSTimestampValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Timestamp" + ::= { localGPSTimestamp 3 } + +localGPSLatitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local GPS Latitude" + ::= { localGPSLatitude 1 } + +localGPSLatitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Latitude, divde by 10000 to get actual value" + ::= { localGPSLatitude 2 } + +localGPSLatitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Latitude" + ::= { localGPSLatitude 3 } + +localGPSLongitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local GPS Longitude" + ::= { localGPSLongitude 1 } + +localGPSLongitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Longitude, divde by 10000 to get actual value" + ::= { localGPSLongitude 2 } + +localGPSLongitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Longitude" + ::= { localGPSLongitude 3 } + +localGPSAltitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local GPS Altitude" + ::= { localGPSAltitude 1 } + +localGPSAltitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Altitude in meters, divde by 100 to get actual value" + ::= { localGPSAltitude 2 } + +localGPSAltitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Altitude in meters, divde by 100 to get actual value" + ::= { localGPSAltitude 3 } + +localGPSAltitudeFeetInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Altitude in feet, divde by 100 to get actual value" + ::= { localGPSAltitude 4 } + +localGPSAltitudeFeetFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local GPS Altitude in feet" + ::= { localGPSAltitude 5 } + +localHeadingStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local Heading Status" + ::= { localHeadingStatus 1 } + +localHeadingStatusInt OBJECT-TYPE + SYNTAX INTEGER { invalid(0), valid(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local Heading Status" + ::= { localHeadingStatus 2 } + +localHeadingStatusValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local Heading Status" + ::= { localHeadingStatus 3 } + +localHeadingString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local Heading" + ::= { localHeading 1 } + +localHeadingInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local heading in degrees (-180 - 180), divde by 100 to get actual value" + ::= { localHeading 2 } + +localHeadingFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local heading in degrees (-180 - 180)" + ::= { localHeading 3 } + +localHeading360ScaleInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local heading in degrees (0 - 360), divde by 100 to get actual value" + ::= { localHeading 4 } + +localHeading360ScaleFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local heading in degrees (0 - 360)" + ::= { localHeading 5 } + +localPitchString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local pitch" + ::= { localPitch 1 } + +localPitchInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local pitch in degrees (-180 - 180), divde by 100 to get actual value" + ::= { localPitch 2 } + +localPitchFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local pitch in degrees (-180 - 180)" + ::= { localPitch 3 } + +localRollString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify local roll" + ::= { localRoll 1 } + +localRollInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local roll in degrees (-180 - 180), divde by 100 to get actual value" + ::= { localRoll 2 } + +localRollFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The local roll in degrees (-180 - 180)" + ::= { localRoll 3 } + +networkGPSHdgAclString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network GPS/Heading/Accel" + ::= { networkGPSHdgAcl 1 } + +networkGPSStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network GPS Status" + ::= { networkGPSStatus 1 } + +networkGPSStatusInt OBJECT-TYPE + SYNTAX INTEGER { invalid(0), valid(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Status" + ::= { networkGPSStatus 2 } + +networkGPSStatusValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Status" + ::= { networkGPSStatus 3 } + +networkGPSTimestampString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network GPS Timestamp" + ::= { networkGPSTimestamp 1 } + +networkGPSTimestampInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Timestamp, divde by 1000 to get actual value" + ::= { networkGPSTimestamp 2 } + +networkGPSTimestampValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Timestamp" + ::= { networkGPSTimestamp 3 } + +networkGPSLatitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network GPS Latitude" + ::= { networkGPSLatitude 1 } + +networkGPSLatitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Latitude, divde by 10000 to get actual value" + ::= { networkGPSLatitude 2 } + +networkGPSLatitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Latitude" + ::= { networkGPSLatitude 3 } + +networkGPSLongitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network GPS Longitude" + ::= { networkGPSLongitude 1 } + +networkGPSLongitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Longitude, divde by 10000 to get actual value" + ::= { networkGPSLongitude 2 } + +networkGPSLongitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Longitude" + ::= { networkGPSLongitude 3 } + +networkGPSAltitudeString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network GPS Altitude" + ::= { networkGPSAltitude 1 } + +networkGPSAltitudeInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Altitude in meters, divde by 100 to get actual value" + ::= { networkGPSAltitude 2 } + +networkGPSAltitudeFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Altitude in meters, divde by 100 to get actual value" + ::= { networkGPSAltitude 3 } + +networkGPSAltitudeFeetInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Altitude in feet, divde by 100 to get actual value" + ::= { networkGPSAltitude 4 } + +networkGPSAltitudeFeetFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network GPS Altitude in feet" + ::= { networkGPSAltitude 5 } + +networkHeadingStatusString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network Heading Status" + ::= { networkHeadingStatus 1 } + +networkHeadingStatusInt OBJECT-TYPE + SYNTAX INTEGER { invalid(0), valid(1) } + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network Heading Status" + ::= { networkHeadingStatus 2 } + +networkHeadingStatusValue OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network Heading Status" + ::= { networkHeadingStatus 3 } + +networkHeadingString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network Heading" + ::= { networkHeading 1 } + +networkHeadingInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network heading in degrees (-180 - 180), divde by 100 to get actual value" + ::= { networkHeading 2 } + +networkHeadingFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network heading in degrees (-180 - 180)" + ::= { networkHeading 3 } + +networkHeading360ScaleInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network heading in degrees (0 - 360), divde by 100 to get actual value" + ::= { networkHeading 4 } + +networkHeading360ScaleFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network heading in degrees (0 - 360)" + ::= { networkHeading 5 } + +networkPitchString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network pitch" + ::= { networkPitch 1 } + +networkPitchInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network pitch in degrees (-180 - 180), divde by 100 to get actual value" + ::= { networkPitch 2 } + +networkPitchFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network pitch in degrees (-180 - 180)" + ::= { networkPitch 3 } + +networkRollString OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The string used to identify network roll" + ::= { networkRoll 1 } + +networkRollInt OBJECT-TYPE + SYNTAX Integer32 + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network roll in degrees (-180 - 180), divde by 100 to get actual value" + ::= { networkRoll 2 } + +networkRollFloat OBJECT-TYPE + SYNTAX DisplayString (SIZE (0..255)) + MAX-ACCESS read-only + STATUS current + DESCRIPTION + "The network roll in degrees (-180 - 180)" + ::= { networkRoll 3 } + + +-- conformance information + +aatsMIBConformance OBJECT IDENTIFIER ::= { aats 97 } +aatsMIBCompliances OBJECT IDENTIFIER ::= { aatsMIBConformance 1 } +aatsMIBGroups OBJECT IDENTIFIER ::= { aatsMIBConformance 2 } + +-- compliance statements +aatsBasicCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "The compliance statement for the AATS MIB" + MODULE -- this module + MANDATORY-GROUPS { aatsSnmpGroup } + + GROUP aatsSnmpGroup + DESCRIPTION + "The aats object groups." + + ::= { aatsMIBCompliances 2 } + +-- units of conformance +aatsSnmpGroup OBJECT-GROUP + OBJECTS { + status, + active, + stowed, + cpuTemp, + radioName, + radioConnected, + linkStatusString, + linkStatusInt, + linkStatusVal, + rssiString, + rssiInt, + rssiFloat, + snrString, + snrInt, + snrFloat, + linkDistanceString, + linkDistanceMeters, + linkDistanceMiles, + remoteString, + remoteIP, + remoteMAC, + positionerConnected, + positionerMoving, + azimuthString, + azimuthInt, + azimuthFloat, + azimuth360ScaleInt, + azimuth360ScaleFloat, + elevationString, + elevationInt, + elevationFloat, + antennaHeadingString, + antennaHeadingInt, + antennaHeadingFloat, + antennaHeading360ScaleInt, + antennaHeading360ScaleFloat, + currentGPSHdgAclString, + currentGPSStatusString, + currentGPSStatusInt, + currentGPSStatusValue, + currentGPSTimestampString, + currentGPSTimestampInt, + currentGPSTimestampValue, + currentGPSLatitudeString, + currentGPSLatitudeInt, + currentGPSLatitudeFloat, + currentGPSLongitudeString, + currentGPSLongitudeInt, + currentGPSLongitudeFloat, + currentGPSAltitudeString, + currentGPSAltitudeInt, + currentGPSAltitudeFloat, + currentGPSAltitudeFeetInt, + currentGPSAltitudeFeetFloat, + currentHeadingStatusString, + currentHeadingStatusInt, + currentHeadingStatusValue, + currentHeadingString, + currentHeadingInt, + currentHeadingFloat, + currentHeading360ScaleInt, + currentHeading360ScaleFloat, + currentPitchString, + currentPitchInt, + currentPitchFloat, + currentRollString, + currentRollInt, + currentRollFloat, + localGPSHdgAclString, + localGPSStatusString, + localGPSStatusInt, + localGPSStatusValue, + localGPSTimestampString, + localGPSTimestampInt, + localGPSTimestampValue, + localGPSLatitudeString, + localGPSLatitudeInt, + localGPSLatitudeFloat, + localGPSLongitudeString, + localGPSLongitudeInt, + localGPSLongitudeFloat, + localGPSAltitudeString, + localGPSAltitudeInt, + localGPSAltitudeFloat, + localGPSAltitudeFeetInt, + localGPSAltitudeFeetFloat, + localHeadingStatusString, + localHeadingStatusInt, + localHeadingStatusValue, + localHeadingString, + localHeadingInt, + localHeadingFloat, + localHeading360ScaleInt, + localHeading360ScaleFloat, + localPitchString, + localPitchInt, + localPitchFloat, + localRollString, + localRollInt, + localRollFloat, + networkGPSHdgAclString, + networkGPSStatusString, + networkGPSStatusInt, + networkGPSStatusValue, + networkGPSTimestampString, + networkGPSTimestampInt, + networkGPSTimestampValue, + networkGPSLatitudeString, + networkGPSLatitudeInt, + networkGPSLatitudeFloat, + networkGPSLongitudeString, + networkGPSLongitudeInt, + networkGPSLongitudeFloat, + networkGPSAltitudeString, + networkGPSAltitudeInt, + networkGPSAltitudeFloat, + networkGPSAltitudeFeetInt, + networkGPSAltitudeFeetFloat, + networkHeadingStatusString, + networkHeadingStatusInt, + networkHeadingStatusValue, + networkHeadingString, + networkHeadingInt, + networkHeadingFloat, + networkHeading360ScaleInt, + networkHeading360ScaleFloat, + networkPitchString, + networkPitchInt, + networkPitchFloat, + networkRollString, + networkRollInt, + networkRollFloat +} + STATUS current + DESCRIPTION + "The aats object group" + ::= { aatsMIBGroups 8 } +END + diff --git a/tests/data/bats.json b/tests/data/bats.json new file mode 100644 index 0000000000..9658db5048 --- /dev/null +++ b/tests/data/bats.json @@ -0,0 +1,615 @@ +{ + "os": { + "discovery": { + "devices": [ + { + "sysName": "", + "sysObjectID": ".1.3.6.1.4.1.37069", + "sysDescr": "AATS", + "sysContact": "", + "version": null, + "hardware": null, + "features": null, + "os": "bats", + "type": "wireless", + "serial": null, + "icon": "bats.png", + "location": "At 57.0268, 1.9663. Scanning Target G17DAP ENB 01 (344.4 km)" + } + ] + }, + "poller": "matches discovery" + }, + "sensors": { + "discovery": { + "sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.3.1.5.5.0", + "sensor_index": "antennaHeading360ScaleFloat.0", + "sensor_type": "bats", + "sensor_descr": "Antenna heading", + "group": "Positioner", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 168.98, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.3.1.3.5.0", + "sensor_index": "azimuth360ScaleFloat.0", + "sensor_type": "bats", + "sensor_descr": "Azimuth", + "group": "Positioner", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 354.4, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.6.3.0", + "sensor_index": "currentGPSAltitudeFloat.0", + "sensor_type": "bats", + "sensor_descr": "GPS height (m)", + "group": "Currently used GPS / Heading", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 23.6, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.7.2.5.0", + "sensor_index": "currentHeading360ScaleFloat.0", + "sensor_type": "bats", + "sensor_descr": "GPS Heading", + "group": "Currently used GPS / Heading", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 168.98, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.7.2.4.0", + "sensor_index": "currentHeading360ScaleInt.0", + "sensor_type": "bats", + "sensor_descr": "GPS Heading / 100", + "group": "Currently used GPS / Heading", + "sensor_divisor": 100, + "sensor_multiplier": 1, + "sensor_current": 168.98, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.8.1.3.0", + "sensor_index": "currentPitchFloat.0", + "sensor_type": "bats", + "sensor_descr": "Pitch", + "group": "Currently used GPS / Heading", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 3.67, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.8.2.3.0", + "sensor_index": "currentRollFloat.0", + "sensor_type": "bats", + "sensor_descr": "Roll", + "group": "Currently used GPS / Heading", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 1.34, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "count", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.1.1.0", + "sensor_index": "status.0", + "sensor_type": "bats", + "sensor_descr": "Link distance (km)", + "group": "Positioner", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 17, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.2.2.0", + "sensor_index": "currentGPSStatusInt.0", + "sensor_type": "GPSLinkStatus", + "sensor_descr": "Overall GPS status", + "group": "Currently used GPS / Heading", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 1, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "GPSLinkStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.2.3.2.0", + "sensor_index": "linkStatusInt.0", + "sensor_type": "linkStatus", + "sensor_descr": "Link status", + "group": "Radio", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "linkStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.5.2.2.0", + "sensor_index": "localGPSStatusInt.0", + "sensor_type": "LocalGPSLinkStatus", + "sensor_descr": "Local GPS status", + "group": "Local GPS", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "LocalGPSLinkStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.6.2.2.0", + "sensor_index": "networkGPSStatusInt.0", + "sensor_type": "NetworkGPSLinkStatus", + "sensor_descr": "Network GPS status", + "group": "Network GPS", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 1, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "NetworkGPSLinkStatus" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.3.1.1.0", + "sensor_index": "positionerConnected.0", + "sensor_type": "PositionerConnection", + "sensor_descr": "Positioner Connection", + "group": "Positioner", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 1, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "PositionerConnection" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.4.7.1.2.0", + "sensor_index": "currentHeadingStatusInt.0", + "sensor_type": "PositionerHeadingState", + "sensor_descr": "Heading status", + "group": "Currently used GPS / Heading", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 1, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "PositionerHeadingState" + }, + { + "sensor_deleted": 0, + "sensor_class": "state", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.3.1.2.0", + "sensor_index": "positionerMoving.0", + "sensor_type": "PositionerMovement", + "sensor_descr": "Positioner Movement", + "group": "Positioner", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 0, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": "PositionerMovement" + }, + { + "sensor_deleted": 0, + "sensor_class": "temperature", + "poller_type": "snmp", + "sensor_oid": ".1.3.6.1.4.1.37069.1.1.4.0", + "sensor_index": "cpuTemp.0", + "sensor_type": "bats", + "sensor_descr": "System CPU", + "group": null, + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_current": 22, + "sensor_limit": 42, + "sensor_limit_warn": null, + "sensor_limit_low": 12, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_prev": null, + "user_func": null, + "state_name": null + } + ], + "state_indexes": [ + { + "state_name": "GPSLinkStatus", + "state_descr": "Invalid", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 2 + }, + { + "state_name": "GPSLinkStatus", + "state_descr": "Valid", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "linkStatus", + "state_descr": "Disconnected", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 2 + }, + { + "state_name": "linkStatus", + "state_descr": "Marginal", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 1 + }, + { + "state_name": "linkStatus", + "state_descr": "Connected", + "state_draw_graph": 0, + "state_value": 2, + "state_generic_value": 0 + }, + { + "state_name": "LocalGPSLinkStatus", + "state_descr": "Invalid", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 2 + }, + { + "state_name": "LocalGPSLinkStatus", + "state_descr": "Valid", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "NetworkGPSLinkStatus", + "state_descr": "Invalid", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 2 + }, + { + "state_name": "NetworkGPSLinkStatus", + "state_descr": "Valid", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "PositionerConnection", + "state_descr": "Disconnected", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 2 + }, + { + "state_name": "PositionerConnection", + "state_descr": "Connected", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "PositionerHeadingState", + "state_descr": "Invalid", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 2 + }, + { + "state_name": "PositionerHeadingState", + "state_descr": "Valid", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + }, + { + "state_name": "PositionerMovement", + "state_descr": "Stopped", + "state_draw_graph": 0, + "state_value": 0, + "state_generic_value": 0 + }, + { + "state_name": "PositionerMovement", + "state_descr": "Moving", + "state_draw_graph": 0, + "state_value": 1, + "state_generic_value": 0 + } + ] + }, + "poller": "matches discovery" + }, + "wireless": { + "discovery": { + "wireless_sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "snr", + "sensor_index": "0", + "sensor_type": "bats", + "sensor_descr": "SNR", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_aggregator": "sum", + "sensor_current": -130, + "sensor_prev": null, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_oids": "[\".1.3.6.1.4.1.37069.1.2.5.3.0\"]" + }, + { + "sensor_deleted": 0, + "sensor_class": "rssi", + "sensor_index": "0", + "sensor_type": "bats", + "sensor_descr": "RSSI", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_aggregator": "sum", + "sensor_current": -160, + "sensor_prev": null, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_oids": "[\".1.3.6.1.4.1.37069.1.2.4.3.0\"]" + } + ] + }, + "poller": { + "wireless_sensors": [ + { + "sensor_deleted": 0, + "sensor_class": "snr", + "sensor_index": "0", + "sensor_type": "bats", + "sensor_descr": "SNR", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_aggregator": "sum", + "sensor_current": -130, + "sensor_prev": -130, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_oids": "[\".1.3.6.1.4.1.37069.1.2.5.3.0\"]" + }, + { + "sensor_deleted": 0, + "sensor_class": "rssi", + "sensor_index": "0", + "sensor_type": "bats", + "sensor_descr": "RSSI", + "sensor_divisor": 1, + "sensor_multiplier": 1, + "sensor_aggregator": "sum", + "sensor_current": -160, + "sensor_prev": -160, + "sensor_limit": null, + "sensor_limit_warn": null, + "sensor_limit_low": null, + "sensor_limit_low_warn": null, + "sensor_alert": 1, + "sensor_custom": "No", + "entPhysicalIndex": null, + "entPhysicalIndex_measured": null, + "sensor_oids": "[\".1.3.6.1.4.1.37069.1.2.4.3.0\"]" + } + ] + } + } +} diff --git a/tests/snmpsim/bats.snmprec b/tests/snmpsim/bats.snmprec new file mode 100644 index 0000000000..f7d634153a --- /dev/null +++ b/tests/snmpsim/bats.snmprec @@ -0,0 +1,98 @@ +1.3.6.1.2.1.1.1.0|4|AATS +1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.37069 +1.3.6.1.2.1.1.3.0|67|16889633 +1.3.6.1.2.1.1.4.0|4| +1.3.6.1.2.1.1.5.0|4| +1.3.6.1.2.1.1.6.0|4| +1.3.6.1.2.1.2.2.1.6.3|4x|A887921001D9 +1.3.6.1.2.1.4.3.0|65|15037551 +1.3.6.1.2.1.4.4.0|65|0 +1.3.6.1.2.1.4.5.0|65|0 +1.3.6.1.2.1.4.6.0|65|0 +1.3.6.1.2.1.4.7.0|65|0 +1.3.6.1.2.1.4.8.0|65|0 +1.3.6.1.2.1.4.9.0|65|15037551 +1.3.6.1.2.1.4.10.0|65|15020667 +1.3.6.1.2.1.4.11.0|65|80 +1.3.6.1.2.1.4.12.0|65|0 +1.3.6.1.2.1.4.14.0|65|0 +1.3.6.1.2.1.4.15.0|65|0 +1.3.6.1.2.1.4.16.0|65|0 +1.3.6.1.2.1.4.17.0|65|0 +1.3.6.1.2.1.4.18.0|65|0 +1.3.6.1.2.1.4.19.0|65|0 +1.3.6.1.2.1.4.20.1.2.10.6.63.65|2|3 +1.3.6.1.2.1.4.20.1.2.127.0.0.1|2|1 +1.3.6.1.2.1.4.20.1.3.10.6.63.65|64|255.255.255.248 +1.3.6.1.2.1.4.20.1.3.127.0.0.1|64|255.0.0.0 +1.3.6.1.2.1.4.22.1.2.3.10.6.63.67|4x|0090E89C77BF +1.3.6.1.2.1.4.22.1.2.3.10.6.63.68|4x|643AEA424C00 +1.3.6.1.2.1.4.22.1.2.3.10.6.63.69|4x|0CA40293664E +1.3.6.1.2.1.4.31.1.1.3.1|65|15038039 +1.3.6.1.2.1.4.31.1.1.4.1|70|15038039 +1.3.6.1.2.1.4.31.1.1.5.1|65|898818468 +1.3.6.1.2.1.4.31.1.1.6.1|70|898818468 +1.3.6.1.2.1.4.31.1.1.7.1|65|0 +1.3.6.1.2.1.4.31.1.1.8.1|65|0 +1.3.6.1.2.1.4.31.1.1.9.1|65|0 +1.3.6.1.2.1.4.31.1.1.10.1|65|0 +1.3.6.1.2.1.4.31.1.1.11.1|65|0 +1.3.6.1.2.1.4.31.1.1.12.1|65|0 +1.3.6.1.2.1.4.31.1.1.13.1|70|0 +1.3.6.1.2.1.4.31.1.1.14.1|65|0 +1.3.6.1.2.1.4.31.1.1.15.1|65|0 +1.3.6.1.2.1.4.31.1.1.16.1|65|0 +1.3.6.1.2.1.4.31.1.1.17.1|65|0 +1.3.6.1.2.1.4.31.1.1.18.1|65|15038039 +1.3.6.1.2.1.4.31.1.1.19.1|70|15038039 +1.3.6.1.2.1.4.31.1.1.20.1|65|15021155 +1.3.6.1.2.1.4.31.1.1.21.1|70|15021155 +1.3.6.1.2.1.4.31.1.1.22.1|65|0 +1.3.6.1.2.1.4.31.1.1.23.1|65|0 +1.3.6.1.2.1.4.31.1.1.24.1|70|0 +1.3.6.1.2.1.4.31.1.1.25.1|65|80 +1.3.6.1.2.1.4.31.1.1.26.1|65|0 +1.3.6.1.2.1.4.31.1.1.27.1|65|0 +1.3.6.1.2.1.4.31.1.1.28.1|65|0 +1.3.6.1.2.1.4.31.1.1.29.1|65|0 +1.3.6.1.2.1.4.31.1.1.30.1|65|15021075 +1.3.6.1.2.1.4.31.1.1.31.1|70|15021075 +1.3.6.1.2.1.4.31.1.1.32.1|65|836686742 +1.3.6.1.2.1.4.31.1.1.33.1|70|836686742 +1.3.6.1.2.1.4.31.1.1.34.1|65|0 +1.3.6.1.2.1.4.31.1.1.35.1|70|0 +1.3.6.1.2.1.4.31.1.1.36.1|65|0 +1.3.6.1.2.1.4.31.1.1.37.1|70|0 +1.3.6.1.2.1.4.31.1.1.38.1|65|0 +1.3.6.1.2.1.4.31.1.1.39.1|70|0 +1.3.6.1.2.1.4.31.1.1.40.1|65|0 +1.3.6.1.2.1.4.31.1.1.41.1|70|0 +1.3.6.1.2.1.4.31.1.1.42.1|65|33664 +1.3.6.1.2.1.4.31.1.1.43.1|70|33664 +1.3.6.1.2.1.4.31.1.1.44.1|65|16841 +1.3.6.1.2.1.4.31.1.1.45.1|70|16841 +1.3.6.1.2.1.4.31.1.1.46.1|67|0 +1.3.6.1.2.1.4.31.1.1.47.1|66|60000 +1.3.6.1.2.1.4.35.1.4.3.1.4.10.6.63.67|4x|0090E89C77BF +1.3.6.1.2.1.4.35.1.4.3.1.4.10.6.63.68|4x|643AEA424C00 +1.3.6.1.2.1.4.35.1.4.3.1.4.10.6.63.69|4x|0CA40293664E +1.3.6.1.4.1.37069.1.1.1.0|4|Scanning Target G17DAP ENB 01 (344.4 km) +1.3.6.1.4.1.37069.1.1.4.0|2|22 +1.3.6.1.4.1.37069.1.2.3.2.0|2|0 +1.3.6.1.4.1.37069.1.2.4.3.0|4|-160.00 +1.3.6.1.4.1.37069.1.2.5.3.0|4|-130.00 +1.3.6.1.4.1.37069.1.3.1.1.0|2|1 +1.3.6.1.4.1.37069.1.3.1.2.0|2|0 +1.3.6.1.4.1.37069.1.3.1.3.5.0|4|354.40 +1.3.6.1.4.1.37069.1.3.1.5.5.0|4|168.98 +1.3.6.1.4.1.37069.1.4.2.2.0|2|1 +1.3.6.1.4.1.37069.1.4.6.3.0|4|23.60 +1.3.6.1.4.1.37069.1.4.7.1.2.0|2|1 +1.3.6.1.4.1.37069.1.4.7.2.4.0|2|16898 +1.3.6.1.4.1.37069.1.4.7.2.5.0|4|168.98 +1.3.6.1.4.1.37069.1.4.8.1.3.0|4|3.67 +1.3.6.1.4.1.37069.1.4.8.2.3.0|4|1.34 +1.3.6.1.4.1.37069.1.5.2.2.0|2|0 +1.3.6.1.4.1.37069.1.6.2.2.0|2|1 +1.3.6.1.4.1.37069.1.6.4.3.0|4|57.0268 +1.3.6.1.4.1.37069.1.6.5.3.0|4|1.9663