anchor.diff:    void _read(){
       _readPort = new RawReceivePort();
       _servicePort.send([_readPort.sendPort, "read", _ttyFd]);
  -    _readPort.handler = (result) {
  +    _readPort.handler = (List<int> result) {
         _closeReadPort();
         if(result != null){
  -        _onReadControllers.forEach((c) => c.add(new String.fromCharCodes(result)));
  +        result.forEach((byte) {
  +          _lineBuffer.write(new String.fromCharCode(byte));
  +          if(byte == _EOL){
  +            _onReadControllers.forEach((c) => c.add(_lineBuffer.toString()));
  +            _lineBuffer.clear();
  +          }
  +        });
         }
         // Continue to read
         if(_ttyFd != -1){
  
positive.code:     return completer.future;
    }
  
    Stream<String> get onRead {
      StreamController<String> controller = new StreamController();
      _onReadControllers.add(controller);
  
negative.code: 
  class SerialPort {
  
    static const int _EOL = 10;
    static const List<int> AUTHORIZED_BAUDATE_SPEED =  const [50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 4000000];
  
    final String portname;
  