public clsRoomba(logDelegate logFunc, sendDelegate sendFunc) { log += new logDelegate(logFunc); this.send += new sendDelegate(sendFunc); log("Initializing", TAG); this.drivingState = new stDrivingState(); this.sensors = new sensorList(); this.motorState = new stMotors(); this.ledState = new stLeds(); this.stream = new stStream(); //Init list of sensors: log("Adding sensors", TAG); sensors.Add(new sensor("Bump and wheel drops", 7, 1)); sensors.Add(new sensor("Wall", 8, 1)); sensors.Add(new sensor("Cliff Left", 9, 1)); sensors.Add(new sensor("Cliff Front Left", 10, 1)); sensors.Add(new sensor("Cliff Front Right", 11, 1)); sensors.Add(new sensor("Cliff Right", 12, 1)); sensors.Add(new sensor("Virtual wall", 13, 1)); sensors.Add(new sensor("Wheel overcurrents", 14, 1)); sensors.Add(new sensor("Dirt Detect", 15, 1)); sensors.Add(new sensor("Unused Byte", 16, 2)); sensors.Add(new sensor("Infrared Character Omni", 17, 1)); sensors.Add(new sensor("Infrared Character Left", 52, 1)); sensors.Add(new sensor("Infrared Character Right", 53, 1)); sensors.Add(new sensor("Buttons", 18, 1)); sensors.Add(new distanceSensor("Distance", 19, 2)); sensors.Add(new angleSensor("Angle", 20, 2)); sensors.Add(new sensor("Charging State", 21, 1)); sensors.Add(new sensor("Voltage", 22, 2)); sensors.Add(new sensor("Current", 23, 2)); sensors.Add(new sensor("Temperature", 24, 1)); sensors.Add(new sensor("Battery Charge", 25, 2)); sensors.Add(new sensor("Battery Capacity", 26, 2)); sensors.Add(new sensor("Wall signal", 27, 2)); sensors.Add(new sensor("Cliff Left Signal", 28, 2)); sensors.Add(new sensor("Cliff Front Left Signal", 29, 2)); sensors.Add(new sensor("Cliff Front Right Signal", 30, 2)); sensors.Add(new sensor("Cliff Right Signal", 31, 2)); sensors.Add(new sensor("Unused", 32, 3)); sensors.Add(new sensor("Unused", 33, 3)); sensors.Add(new sensor("Charging Sources Available", 43, 1)); sensors.Add(new sensor("OI Mode", 35, 1)); sensors.Add(new sensor("Song Number", 36, 1)); sensors.Add(new sensor("Song Playing", 37, 1)); sensors.Add(new sensor("Number of Stream Packets", 38, 1)); sensors.Add(new sensor("Requested Velocity", 39, 2)); sensors.Add(new sensor("Requested Radius", 40, 2)); sensors.Add(new sensor("Requested Right Velocity", 41, 2)); sensors.Add(new sensor("Requested Left Velocity", 42, 2)); sensors.Add(new sensor("Right Encoder Counts", 43, 2)); sensors.Add(new sensor("Left Encode Counts", 44, 2)); sensors.Add(new sensor("Light Bumper", 45, 1)); sensors.Add(new sensor("Light Bump Left Signal", 46, 2)); sensors.Add(new sensor("Light Bump Front Left Signal", 47, 2)); sensors.Add(new sensor("Light Bump Center Left Signal", 48, 2)); sensors.Add(new sensor("Light Bump Center Right Signal", 49, 2)); sensors.Add(new sensor("Light Bump Front Right Signal", 50, 2)); sensors.Add(new sensor("Light Bump Right Signal", 51, 2)); sensors.Add(new sensor("Left Motor Current", 54, 2)); sensors.Add(new sensor("Right Motor Current", 55, 2)); sensors.Add(new sensor("Main Brush Motor Current", 56, 2)); sensors.Add(new sensor("Side Brush Motor Current", 57, 2)); sensors.Add(new sensor("Stasis", 58, 1)); log("Done adding sensors", TAG); log("Adding sensor groups", TAG); sensors.AddGroup(new sensorGroup(0, 26, 6, 26)); sensors.AddGroup(new sensorGroup(1, 10, 7, 16)); sensors.AddGroup(new sensorGroup(2, 6, 17, 20)); sensors.AddGroup(new sensorGroup(3, 10, 21, 26)); sensors.AddGroup(new sensorGroup(4, 14, 27, 34)); sensors.AddGroup(new sensorGroup(5, 12, 35, 42)); sensors.AddGroup(new sensorGroup(6, 52, 7, 41)); sensors.AddGroup(new sensorGroup(100, 80, 7, 58)); sensors.AddGroup(new sensorGroup(101, 28, 43, 58)); sensors.AddGroup(new sensorGroup(106, 12, 46, 51)); sensors.AddGroup(new sensorGroup(107, 9, 54, 58)); log("Done adding sensor groups", TAG); log("Initialized", TAG); }