public void ResetBoard() { var connection = new MockSerialConnection(); var session = CreateFirmataSession(connection); connection.EnqueueRequestAndResponse(new byte[] { 0xFF }, new byte[] { 0xF9, 2, 3 }); session.ResetBoard(); Assert.AreEqual(1, _messagesReceived.Count); FirmataMessage message = _messagesReceived.Dequeue(); Assert.AreEqual(MessageType.ProtocolVersion, message.Type); var version = (ProtocolVersion)message.Value; Assert.AreEqual(2, version.Major); Assert.AreEqual(3, version.Minor); }
public void RequestPinState() { var connection = new MockSerialConnection(); var session = CreateFirmataSession(connection); connection.EnqueueRequestAndResponse(new byte[] { 0xF0, 0x6D, 0x01, 0xF7 }, 0xF0, 0x6E); // Pin 1 Digital Output mode, value = 0 connection.EnqueueResponse(0x01, 0x01, 0x00); connection.EnqueueResponse(0xF7); session.RequestPinState(1); FirmataMessage message = _messagesReceived.Dequeue(); Assert.AreEqual(MessageType.PinStateResponse, message.Type); PinState state = (PinState)message.Value; Assert.AreEqual(1, state.PinNumber); Assert.AreEqual(PinMode.DigitalOutput, state.Mode); Assert.AreEqual(0, state.Value); }
public void RequestBoardAnalogMapping() { var connection = new MockSerialConnection(); var session = CreateFirmataSession(connection); connection.EnqueueRequestAndResponse(new byte[] { 0xF0, 0x69, 0xF7 }, 0xF0, 0x6A); connection.EnqueueResponse(0x0F); connection.EnqueueResponse(0xF7); session.RequestBoardAnalogMapping(); FirmataMessage message = _messagesReceived.Dequeue(); Assert.AreEqual(MessageType.AnalogMappingResponse, message.Type); BoardAnalogMapping mapping = (BoardAnalogMapping)message.Value; Assert.AreEqual(1, mapping.PinMappings.Length); Assert.AreEqual(0, mapping.PinMappings[0].PinNumber); Assert.AreEqual(15, mapping.PinMappings[0].Channel); }
public void RequestBoardCapability() { var connection = new MockSerialConnection(); var session = CreateFirmataSession(connection); // DIGITAL INPUT/DIGITAL OUTPUT/ANALOG/PWM/SERVO, 0/1/2/3/4 connection.EnqueueRequestAndResponse(new byte[] { 0xF0, 0x6B, 0xF7 }, 0xF0, 0x6C); connection.EnqueueResponse(2, 8, 0x7F); connection.EnqueueResponse(0, 127, 1, 127, 0x7F); connection.EnqueueResponse(0xF7); session.RequestBoardCapability(); FirmataMessage message = _messagesReceived.Dequeue(); Assert.AreEqual(MessageType.CapabilityResponse, message.Type); BoardCapability capability = (BoardCapability)message.Value; Assert.AreEqual(2, capability.Pins.Length); Assert.AreEqual(0, capability.Pins[0].PinNumber); Assert.AreEqual(false, capability.Pins[0].DigitalInput); Assert.AreEqual(false, capability.Pins[0].DigitalOutput); Assert.AreEqual(true, capability.Pins[0].Analog); Assert.AreEqual(8, capability.Pins[0].AnalogResolution); Assert.AreEqual(false, capability.Pins[0].Pwm); Assert.AreEqual(0, capability.Pins[0].PwmResolution); Assert.AreEqual(false, capability.Pins[0].Servo); Assert.AreEqual(0, capability.Pins[0].ServoResolution); Assert.AreEqual(1, capability.Pins[1].PinNumber); Assert.AreEqual(true, capability.Pins[1].DigitalInput); Assert.AreEqual(true, capability.Pins[1].DigitalOutput); Assert.AreEqual(false, capability.Pins[1].Analog); Assert.AreEqual(0, capability.Pins[1].AnalogResolution); Assert.AreEqual(false, capability.Pins[1].Pwm); Assert.AreEqual(0, capability.Pins[1].PwmResolution); Assert.AreEqual(false, capability.Pins[1].Servo); Assert.AreEqual(0, capability.Pins[1].ServoResolution); }
public void RequestFirmware() { const int majorVersion = 5; const int minorVersion = 1; const string Name = "Arduïno Firmata"; var connection = new MockSerialConnection(); var session = CreateFirmataSession(connection); connection.EnqueueRequestAndResponse(new byte[] { 0xF0, 0x79, 0xF7 }, new byte[] { 0xF0, 0x79, majorVersion, minorVersion }); connection.EnqueueResponse(Name.To14BitIso()); connection.EnqueueResponse(0xF7); session.RequestFirmware(); Assert.AreEqual(1, _messagesReceived.Count, "Message event error"); FirmataMessage message = _messagesReceived.Dequeue(); Assert.AreEqual(MessageType.FirmwareResponse, message.Type); var firmware = (Firmware)message.Value; Assert.AreEqual(firmware.MajorVersion, majorVersion); Assert.AreEqual(firmware.MinorVersion, minorVersion); Assert.AreEqual(firmware.Name, Name); }