serialport / node-serialport

Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!

Home Page:https://serialport.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Roadmap

reconbot opened this issue · comments

I'd like to use this issue to discuss breaking changes to the SerialPort library. 2.0.7 has changed a lot of the internals but left the api largely intact. I'd like to make some goals and address specific api changes.

Internals and APi Changes

  • Cleanup flow control flags #819
  • Throw errors during construction instead of doing them in a zalgo infested callback #820
  • Stop removing registered event handlers ever #764
  • Move the openImmediately argument to options #809,
  • Explore a Streams interface either as a primary or additional interface #832
  • Cleanup the bindings layer #738
  • Support chrome.serialport #739
  • Fix the disconnect behavior #702
  • Explore the whatwg serial api
  • Reconnect options
  • Reading RTS and CTS or having events #291
  • Your hopes and dreams here

My current plans involve a 3.0 release that removes the close and disconnect removeAllListeners() calls. These are basically bugs imho, but they are major api changes so 3.0.0. Most everyone will be able to update to 3.0 without any major code changes.

A 4.0 release will take a bit longer and need some discussion. I want to clean up options, and construor apis (eg throw immediatly on config issues, ensure update does the right thing everywhere. And lastly kill the factory. This will also make it a lot easier to have a single disconnect path for windows and everyone else, and isolate the pause/resume functions to the bindings.

I put together a shortlist for 4.0

I have a few links to serialport like interfaces that could be potential bindings layers.

Most of these are completed. Gonna close as 5.0 is close to release.