anchor.diff:  
     Board(String portname) : _serialPort = new SerialPort(portname, baudrate: 57600);
   
  +  /// Open the connection with the board
     Future<bool> open() {
       final completer = new Completer<bool>();
       _serialPort.open().then((_){
  
positive.code:     _reportVersionController.add(new FirmataVersion(name, major, minor));
    }
  
    Stream<FirmataVersion> get onReportVersion =>
        _reportVersionController.stream;
  
  }
  
  
  class FirmataVersion {
    final String name;
    final int major;
  
negative.code:     return _serialPort.write([DIGITAL_MESSAGE | port, portValue & 0x7F, (portValue >> 7) & 0x7F]);
    }
  
    /// Resquest a QUERY_FIRMWARE call
    Future<bool> queryFirmware() =>
      _serialPort.write([START_SYSEX, QUERY_FIRMWARE, END_SYSEX]);
  
    /// Request a CAPABILITY_RESPONSE call
    Future<bool> queryCapability() =>
      _serialPort.write([START_SYSEX, CAPABILITY_QUERY, END_SYSEX]);
  
    /// Asks the arduino to tell us its analog pin mapping
    Future<bool> queryAnalogMapping() =>
      _serialPort.write([START_SYSEX, ANALOG_MAPPING_QUERY, END_SYSEX]);
  
  
    /// Close the connection
    Future<bool> close() => _serialPort.close();
  
  }
  