numat / alicat

Python driver and command line tool for Alicat mass flow controllers.
GNU General Public License v2.0
21 stars 27 forks source link

Adding back in Support for TCP Connections #31

Closed rob-shalloo closed 1 year ago

rob-shalloo commented 1 year ago

Hello, the code is great! Would it be possible to add back in the support for TCP connections as previously? https://github.com/numat/alicat/tree/8af92647cb396401c0d604d83fb95a49d9a82be9

It's incredibly useful!

alexrudd2 commented 1 year ago

Hello @rob-shalloo, I'm glad you find this library useful!

Unfortunately we don't currently use TCP connections, and it would take me a little bit to setup a test bench again. It is unlikely that I'll get a chance to work on this code in the near future. Does 0.3.1 work for you? It's still available on PyPI.

Side note: If I get development time, I would love to integrate with https://github.com/JosephHickey1/Alicat-Python. I don't have any connection to @JosephHickey1, but see that he has written some additional features that our library does not support. Unfortunately it looks like that driver only supports serial at the moment.

rob-shalloo commented 1 year ago

Hey @alexrudd2,

Thanks for the quick reply! Yes 0.3.1 continues to work well, so will carry on using that :)

alexrudd2 commented 1 year ago

Hey @alexrudd2,

Thanks for the quick reply! Yes 0.3.1 continues to work well, so will carry on using that :)

Great, glad it works for you. If there's some tiny bugfix you need I'm not opposed to releasing 0.3.2 for it, but otherwise it'll be a while until we can update the latest version.

JosephHickey1 commented 1 year ago

Hello @rob-shalloo, I'm glad you find this library useful!

Unfortunately we don't currently use TCP connections, and it would take me a little bit to setup a test bench again. It is unlikely that I'll get a chance to work on this code in the near future. Does 0.3.1 work for you? It's still available on PyPI.

Side note: If I get development time, I would love to integrate with https://github.com/JosephHickey1/Alicat-Python. I don't have any connection to @JosephHickey1, but see that he has written some additional features that our library does not support. Unfortunately it looks like that driver only supports serial at the moment.

Hi @alexrudd2 , Supporting Modbus TCP/IP for TCP connections in a way that is as comprehensive as my library is for serial has a lot of challenges so I couldn't even begin to attempt it before I left. The registers changed frequently in the early days of Alicat and it would be hard to know exactly which ones are used without getting the firmware version, a value that was stored in different registers over time as well. Supporting any code that tries to do it would be difficult since a number of edge cases where whatever trick is used to determine the registers needed will fail. I almost would recommend a user getting the correct version of the modbus operating bulletin for their device from an Applications Engineer at Alicat and using that and the style of getter/setter methods which can be seen in the CODA portion of my library to build their own version.

It's also worth mentioning that no industrial protocol is as close to feature complete as the ASCII serial is. Until Alicat finishes testing and verification of their new industrial protocol board and builds a new firmware version with expanded industrial protocol functionality, it will remain that way.

alexrudd2 commented 1 year ago

To clarify here, I meant the ASCII protocol over TCP (i.e. using a Ethernet<=>RS-232 converter).

Modbus (either Modbus RTU over RS-232 or Modbus TCP over Ethernet) is a different beast altogether.

alexrudd2 commented 1 year ago

@rob-shalloo

I've added back in support for TCP connections, and did some basic testing on real hardware. You should be able to upgrade from 0.3.1 now. However, I dropped sync code and the code now uses asyncio. It should be easy to switch over with the readme.

Can you test if this works for you? python3 -m pip install 'alicat @ git+https://github.com/numat/alicat@master'

alexrudd2 commented 1 year ago

@rob-shalloo I've now released 0.5.0 on PyPI if you'd like to try it.