ham-radio-software / D-Rats

D-Rats program for D-Star Ham Radios
https://iz2lxi.jimdofree.com/
Other
43 stars 13 forks source link

More XON/XOFF fixes #268

Closed wb8tyw closed 11 months ago

wb8tyw commented 11 months ago

The driver XON/XOFF appears to be losing characters when used with actual radios.

Reverting back to software XON/XOFF and fixed the case where software xon/xoff was discarding characters when the driver receive buffer was empty at the start of a read and something other than XON/XOFF was read from the radio.

d_rats/comm.py: Revert back to using software xon/xoff. Fix software xon/xoff to not discard characters.

d_rats/config.py: Only enable edit and remove buttons when an existing radio port is selected to prevent a crash.

d_rats/keyedlistwidget.py: Expose the treeview object as a property.

wb8tyw commented 11 months ago

It is currently very hard to fix issues with setting radio properties, so can not add an option for select which xon/xoff algorithm to use for testing and getting data.

maurizioandreotti commented 11 months ago

tested from Win10 with IC2820 to other Win with 0.3.9 + ID5100:

log on my side

0/25/2023 18:34:31:INFO:SessionManager:incoming:Received frame for station `!'
10/25/2023 18:34:31:INFO:SessionManager:incoming: Received block 1:0 for session `rpc'
10/25/2023 18:34:31:INFO:RPCSession:__job_state: Job state: complete for 1: {'Hello.txt': '40 B (2023-04-19 10:18:16)', 'HelloIZ2LXI.txt': '54 B (2023-04-19 09:40:53)', 'newemail.wav': '6 KB (2023-06-13 10:
34:32)', 'Red Alert.wav': '9 KB (2023-06-13 10:35:03)', 'Sonar_pings.wav': '79 KB (2023-06-13 09:37:16)', 'switch.c': '178 B (2023-10-07 15:09:25)'}
10/25/2023 18:34:31:INFO:Transporter:send_frames: [SERIAL COM4@9600] Waiting 2.0 sec before transmitting
10/25/2023 18:34:33:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:33:INFO:Utils.log_exception:----------------
10/25/2023 18:34:33:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:33:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:34:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:34:INFO:Utils.log_exception:----------------
10/25/2023 18:34:34:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:35:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:35:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:35:INFO:Utils.log_exception:----------------
10/25/2023 18:34:35:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:37:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:38:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:38:INFO:Utils.log_exception:----------------
10/25/2023 18:34:38:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:41:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:41:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:41:INFO:Utils.log_exception:----------------
10/25/2023 18:34:41:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:45:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:45:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:45:INFO:Utils.log_exception:----------------
10/25/2023 18:34:45:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:50:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:51:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:51:INFO:Utils.log_exception:----------------
10/25/2023 18:34:51:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:34:57:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:34:57:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:34:57:INFO:Utils.log_exception:----------------
10/25/2023 18:34:57:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:35:04:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:35:05:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:35:05:INFO:Utils.log_exception:----------------
10/25/2023 18:35:05:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:35:13:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:35:13:INFO:Utils.log_exception:-- Exception: --
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 769, in write
    self._serial.write(buf)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 441, in write
    self._write(data)
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/comm.py", line 413, in _write
    serial.Serial.write(self, data[pos:pos+chunk])
  File "C:/msys64/mingw64/lib/python3.11/site-packages/serial/serialwin32.py", line 325, in write
    raise SerialTimeoutException('Write timeout')
serial.serialutil.SerialTimeoutException: Write timeout
10/25/2023 18:35:13:INFO:Utils.log_exception:----------------
10/25/2023 18:35:13:INFO:Transporter:__send: [SERIAL COM4@9600] Data path IO error: Failed to write to serial port [SERIAL COM4@9600] Write timeout
10/25/2023 18:35:22:INFO:Transporter:__send: [SERIAL COM4@9600] Attempting reconnect...
10/25/2023 18:35:22:INFO:Transporter:worker: [SERIAL COM4@9600] Exception while sending frames
Traceback (most recent call last):
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/transport.py", line 457, in worker
    self.send_frames()
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/transport.py", line 377, in send_frames
    self.__send(frame.get_packed())
  File "C:/msys64/home/mauri/D-Rats-PR-268/d_rats/transport.py", line 205, in __send
    raise DataPathNotConnectedError("Unable to reconnect %s" % self.pipe)
d_rats.dratsexception.DataPathNotConnectedError: Unable to reconnect [SERIAL COM4@9600]
10/25/2023 18:35:22:INFO:Transporter:__worker: [SERIAL COM4@9600] Waiting for reconnection...
wb8tyw commented 11 months ago

Missed turning off the driver xon/xoff code. The software xon/xoff pretty much does nothing when that is on.

At some point we need to find a way to capture a data stream from radios where driver xon/xoff is not working to find out why packets are being dropped.

My guess is that the radio is may be sending an xoff when it goes into transmit mode and an xon when it completes, and it ignores all characters in between.

Driver xon/xoff usually expects that the xoff is sent as a warning before characters are discarded.

maurizioandreotti commented 11 months ago

Tested RF file transfer between:

Results:

Mac Acting as server to share file:

10/26/2023 18:37:08:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.4 sec before transmitting
10/26/2023 18:37:10:INFO:SWFSerial:is_xon: Aiee! Read a non-XOFF char: `b'\x13'`
10/26/2023 18:37:10:INFO:SWFSerial:is_xon: Assuming IXANY behavior
10/26/2023 18:37:16:INFO:SessionManager:incoming: Received block 0:0 for session `chat'
10/26/2023 18:38:02:INFO:SessionManager:incoming:Received frame for station `!'
10/26/2023 18:38:02:INFO:SessionManager:incoming: Received block 0:5 for session `chat'
10/26/2023 18:38:18:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.9 sec before transmitting
10/26/2023 18:38:23:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.9 sec before transmitting
10/26/2023 18:38:35:INFO:SessionManager:incoming:Received frame for station `!'
RPC: _decode_rpccall jobtype, args RPCFileListJob 
10/26/2023 18:38:36:INFO:SessionManager:incoming: Received block 1:0 for session `rpc'
10/26/2023 18:38:36:INFO:RPCSession:__job_state: Job state: complete for 1: {'newemail.wav': '6 KB (2023-06-13 09:55:20)', 'Red Alert.wav': '9 KB (2023-06-13 09:53:25)', 'HelloIZ2LXI.txt': '54 B (2023-04-21 18:44:07)', 'switch.c': '178 B (2023-10-25 19:40:17)', 'Sonar_pings.wav': '79 KB (2023-06-13 10:40:08)', 'Email Exercise PART 1.txt': '726 B (2023-07-06 19:10:17)', 'Hello.txt': '40 B (2023-07-09 09:50:51)', 'ding.wav': '78 KB (2023-10-08 18:59:36)'}
10/26/2023 18:38:36:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.4 sec before transmitting
10/26/2023 18:38:38:INFO:SWFSerial:is_xon: Aiee! Read a non-XOFF char: `b'\x13'`
10/26/2023 18:38:38:INFO:SWFSerial:is_xon: Assuming IXANY behavior
10/26/2023 18:38:38:INFO:SWFSerial:is_xon: Aiee! Read a non-XOFF char: `b'\x11'`
10/26/2023 18:38:38:INFO:SWFSerial:is_xon: Assuming IXANY behavior
10/26/2023 18:38:43:INFO:SessionManager:incoming: Received block 0:0 for session `chat'

Log collected at Windows with D-Rats 0.3.9:

![image](https://github.com/ham-radio-software/D-Rats/assets/7696314/1c553942-4a11-418d-908a-4e59b805f17d)
![image](https://github.com/ham-radio-software/D-Rats/assets/7696314/c3fd546b-c287-47ad-a666-6c1783c72382)

Retrieving file from Windo10 0.3.9 to Mac with 0.4.

10/26/2023 18:43:13:INFO:RPCSession:Sending job `File list request' to None
10/26/2023 18:43:13:INFO:RPCSession:Job sent
10/26/2023 18:43:14:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.3 sec before transmitting
10/26/2023 18:43:22:INFO:SessionManager:incoming:Received frame for station `!'
10/26/2023 18:43:27:INFO:SessionManager:incoming: Received block 0:0 for session `chat'
10/26/2023 18:43:44:INFO:RPCSession:worker: Cancelling job 1 due to timeout
10/26/2023 18:43:44:INFO:RemoteFileV:_file_list_cb : Incomplete job
10/26/2023 18:43:49:INFO:RPCSession:Sending job `File list request' to None
10/26/2023 18:43:49:INFO:RPCSession:Job sent
10/26/2023 18:43:49:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.1 sec before transmitting
10/26/2023 18:43:51:INFO:RPCSession:Sending job `File list request' to None
10/26/2023 18:43:51:INFO:RPCSession:Job sent
10/26/2023 18:43:51:INFO:Transporter:send_frames: [SERIAL /dev/tty.usbserial-1140@9600] Waiting 1.6 sec before transmitting
10/26/2023 18:44:00:INFO:SessionManager:incoming: Received block 0:0 for session `chat'
maurizioandreotti commented 11 months ago

file transfer between win10 + 0.4.1.dev20-gda8b99d-dirty and wind10 0.3.9 via VHF

maurizioandreotti commented 11 months ago

Brief recap:

0.4.x: on both Win and Mac

0.3.x

wb8tyw commented 11 months ago

Look for this in the log messages: Aiee! Read a non-XOFF.... For 0.4 + this patch, this is recovering from a previous data lost condition.

When it shows up on 0.3 version or in any 0.4 version with out this patch, you have lost data, the transfer in progress is broken and what ever you were trying to receive will be lost.

This patch recovers the data and allows the transfer to to proceed, but is only present in systems with this patch. Any system with out this patch is going to eventually fail when it is trying to receive a large amount of data.

This pull request fixes it so that d-rats does not lose data received from the radio that d-rats used to discard with the 'Aiee' message written to the console. Not sure that message was showing up on Windows systems, especially the 0.3 branch.

With this patch, the send file on stations work for me, and the files section to connect, get a directory list and then download a file also works. But both d-rats versions were running with this patch. . This issue will also affect AX.25 TNC connections.

wb8tyw commented 11 months ago

Not sure what is causing that error in the 0.3.9 log report. The data loss bug is present in that version and can cause the first byte of a packet to be tossed, and that will cause a packet to be sent to the rpc handler that is missing the first byte.

I have no way to debut the 0.3.9 version any more.

This first byte in packet being randomly discarded could also be the reasons that people are reporting errors with ping responses over radio links on the mailing list.

wb8tyw commented 11 months ago

Before PR 254 was merged, D-Rats serial port behavior was:

Current Master with PR-254 merged:

With this pull request:

In my tests using a serial port between two D-Rats system with no radio, I can easily reproduce the issue of the "iee!" message showing up in a file transfer. I have not been able to reproduce any data loss from the radio writing data to the D-Rats program, so it looks like D-Rats is unlikely to have this issue as the radio sends data a lot slower than a cross over cable.

The "iee!" issue may not show up as often on older PCs or older D-Rats simply because of timing differences, but the bug is still present in the older D-Rats.

maurizioandreotti commented 11 months ago

In File transfer tab - after connecting to a remote station, clicking on "upload" nothing happens (no upload, no lines in console, no errors shown) shall I open an issue ?

wb8tyw commented 11 months ago

Are both systems running the D-Rats with this PR?

Anything older than this PR can discard data on connection through a radio port, causing this problem as documented above. The current master for some reason works with a null modem cable, but not with a real radio, and anything older than that can randomly discard characters.

I think that SNIFF and RAW go into the event log not the console log, I am not sure on that.

If both systems are running D-Rats with this PR, then more work is needed on this PR, and we need to try to get dumps of the data being sent and received on both sides. Hopefully the RAW and SNIFF settings in D-Rats can capture the data so that we can find out that the actual issue.

For the cases were it is the current master on both radios or with this PR as one of them, it would also be be useful to have the same RAW and SNIFF settings on and captures from event logs of those to find out why the driver.

If the existing RAW and SNIFF settings are not good enough to get the data we need, then that would be the next thing to fix in this PR so that we can get at least one side of the transfer as seen from one radio.

If either radio is older than master or this PR, then we know that it will randomly just discard packets. The data dump should show that happening.

This would also help get an some actual documentation of the protocol that is used for file transfers. I have not been able to figure that out from reading the source code.

maurizioandreotti commented 11 months ago

about the "upload": I did tested between my Win10 PR268 and other pc with 0.3.10 on internet (alabama ratflector)

just redone tha "upload" test with PR268 on my mac and my win10 via alabama ratflector: pressing upload there is no effect at all

both mac and win10 have sniff and raw enabled.

it appears nothing in console, nothing in log window, no errors. Just it seems that the "upload" button is not configured to do anything at all.

on the other end "download" button makes what it is expected

KP4AJ commented 11 months ago

Hi: I have a MMDVM Hot Spot I experimented in the past for D-Star setup. Tests were successful using a Kenwood TMv71 with the MMDVM. Maybe I can try to test D-Rats RF from ICOM 9700 to the Hot Spot. I think the Hot Spot is still functional. Might try test in the weekend but I need instructions. Other than that I don't have additional D-Star (DV) capable radios or close and capable D-Star - D-Rats Ham Radio operator.

73'

Edfel KP4AJ

wb8tyw commented 11 months ago

Send file from station panel works. This should be using common code to upload file code which does not work as reported. I have duplicated this issue locally.

wb8tyw commented 11 months ago

Previous commit to master to stop creating the file with the name of the remote station broke the upload code. That same parameter was being used for two different types of data. Pushing a quick fix for that for now, will need to clean it up more later.

wb8tyw commented 11 months ago

Temporarily added --sdebug parameter to d-rats.py until we can re-write the config section to allow specifying a debug log on a per port basis.

This will apend to a serial.txt file all activity to or from a radio via the serial port to allow debugging future issues.

In testing, if the "Aiee" message shows up in the console log for any version of d-rats other than one for this PR, it means that due to a bug in those versions the data transfer is lost, and there is nothing that we can do to make that work except upgrade those d-rats clients to this version.

With this PR version, the "Aiee" message is just informational, the data is not lost.

Now we need to setup a set of pages in the Wiki to with sample logs for various communications with various radios.

maurizioandreotti commented 11 months ago

Testing between my PR268 on windows and on Mac both connected via Alabama ratflector: inconsistent results

With Mac I was able to connect to a third CT1EDG and upload a file, so it seemed ok, but I think It sent the file to a wrong counterpart

With windows (IZ2LXI-W) I was trying to connect to my Mac (Iz2lxi-M) , but I was getting either no response in acceptable time or a list of files which are not on my Mac, eg:

This is my Windows connected to my Mac - look first at the list of the files in the left area and compare with the picture below. The list on the right by no means shows the files on my Mac (IZ2LXI-M)

image

This is my Mac, when connected to CT1EDG,... the file lists on the righe is the one on my Windows PC : image

altought i can confirm that file upload now pushes files, I think that they are not connecting to machine selected in the combo list

wb8tyw commented 11 months ago

This pull request only fixes random character discards between the d-rats client running it and the local serial port. I did not put in packet capture for diagnosing problems with Ratflectors.

The upload button got broken with the previous commit that removed creating the unused directory with the remote host as its name, as that same property was used hold the remote hostname. There is now a separate property for the remote host name.

Diagnosing issues with the Ratflector transfers is going to have to be beyond the scope of this PR. One of the problems with diagnosing that is that we do not have a protocol description and state diagrams for any of the background data transfers that are in D-Rats, and we do not have a good way to collect the debug data.

What should be working now and with a tool to help diagnose communications radio to radio, with no ratflector and the file transfers in both direction.

D-Rats uses half duplex communications for all links including ethernet. This means that if something sends a ratflector or a d-rats client more data than can buffer for read over the internet, some data will be lost, so it is quite possible that we will have some problems until it can be re-written to be full duplex which is a major task.

wb8tyw commented 11 months ago

Found more places where a directory path was being used where the station name property should have been used.

maurizioandreotti commented 11 months ago

file list is now working- i will try to test transfer via RF later tonight iif some friend with D-Rats capability shows up