Modbus.Net icon indicating copy to clipboard operation
Modbus.Net copied to clipboard

Full asyncronize communication system

Open parallelbgls opened this issue 8 years ago • 1 comments

Currently, Modbus.Net using await after sending messages. But this is a bug in fact. Problem is caused by error packages or passive messages that will caused message shifting.

So it is required to seperate send and receive thread.

Introducing Controller, a message sending control interface.

  1. CanSend. Some boardcasting packages acquire lock to block messages from other devices, especially in multi-master tropy system.
  2. Send. Send messages, and there is no receive in controller when send.
  3. Receive thread. Open a new thread to receive messages.
  4. Receive dispatching. Dispatch message to a message in send list or new in passive return list, and return it to connector, await in connector will be remained.
  5. Passive message event. Directly trig message to event when server send a message to client.

parallelbgls avatar Aug 31 '17 04:08 parallelbgls

Progress Update : tcp step 1 complete serial step 1 coding complete, testing

parallelbgls avatar Dec 20 '17 08:12 parallelbgls

Serial port is still untested.

parallelbgls avatar Mar 21 '23 07:03 parallelbgls

Serial port tested but contains bugs. packet bytes should be thrown one by one when CRC check error happens.

parallelbgls avatar Mar 30 '23 02:03 parallelbgls

Critial design issue: CRC or LRC check must be implenented in Controller layer. Will be fixed in next commit.

parallelbgls avatar Apr 12 '23 02:04 parallelbgls

Commited, this enhancement has been completed(not tested for all protocols). Issue will be closed.

parallelbgls avatar Apr 12 '23 04:04 parallelbgls