Had a quick look and it is definitely a very good start.
A brain dump to get you busy for some hours
What is missing is the type Arduino, is it an UNO, a DUE
ArduinoType OBJECT-TYPE
SYNTAX OCTET STRING (SIZE(10)) // UNO GUE, TEENSY, LEONARDO, ...
ACCESS read-only
STATUS current
DESCRIPTION "Arduino Type"
::= { system x }
They can have more RAM.
sysFreeMem OBJECT-TYPE
SYNTAX INTEGER(0..32767)
ACCESS read-only
STATUS current
DESCRIPTION "Free system memory [color=red]in KB[/color]"
::= { system 3 }
sysClockspeed ::= { system.4 }
system.sysEEPROM ::= { arduinoMIB.xxx }
arduinoMIB.experimental ::= { arduinoMIB.xxx } // always useful for people who want to experiment.
split OBJECT IDENTIFIER ::= { arduinoMIB 3 } in 2 :
ADC OBJECT IDENTIFIER ::= { arduinoMIB 3}
DIO OBJECT IDENTIFIER ::= { arduinoMIB 4}
DAC OBJECT IDENTIFIER ::= { arduinoMIB 5}
Better make an Array of it (does Argentuino support arrays??)
something like this:
ADC OBJECT IDENTIFIER ::= { arduinoMIB 3 }
ADCTable OBJECT-TYPE
SYNTAX SEQUENCE OF analogPin
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table of the analog pins"
::= { ADC 1 }
analogPin OBJECT-TYPE
SYNTAX analogPin
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
""
INDEX {analogPinIndex}
::= { analogPinTable 1 }
analogPin ::= SEQUENCE {
analogPinIndex INTEGER,
analogPinMaxValue INTEGER, // or #bits ?
analogPinCurValue INTEGER
// register settings ...
}
Similar for digital IO - the advantage of 2 arrays is that you can number them independently
Note that the digital pins should include the analog ones. BTW an Arduino UNO has 8 analog pins
Furthermore you can add
These are ArduinoMib.communication or so?
arduinoMIB.sketch ::= { arduinoMIB.xxx } // should be an array to be prepared for multitasking!
-- name
-- date installed / written whatever
-- uptime
arduinoMIB.shield ::= { arduinoMIB.xxx } // should be an array to be prepared [don't know if possible]
-- name