Jump to content
IGNORED

OS X RespeQt issues


TheMontezuma

Recommended Posts

I started a new topic: "OS X issues" with focus only on the OS X specific problems/changes, etc.

 

The Logic Analyzer helped me to understand the lower communication speed over Bluetooth.

The timing of the Bluetooth stack in the OS X seems to be ugly.

Instead of expected ~50ms pauses between data chunks I observed ~250ms pauses (200ms additional delay in OSX BT stack?)

Additionally bigger data chunks were not transmitted in one shot.

With "bigger" I mean a diskette sector + checksum (129 bytes), There was a 200ms pause in between.

The virtual serial port is opened with O_NDELAY parameter, so the "read()" and "write()" calls are non blocking.

The "write()" call will not necessarily process all bytes. It returns the number of bytes that could be written.

The still awaiting bytes have to be sent in the next "write()" call (in a loop) and this happens for 129 bytes (sent in to chunks: 126 + 3)

 

At the end, the data transfer was successful, but I don't have any idea how to improve that :?

Edited by TheMontezuma
Link to comment
Share on other sites

After looking at the code and thinking it over, I think that this issue simply reveals a poor design of the application :(

Normally GUI applications start threads to execute lengthy or blocking tasks, so the user can still interact with the GUI.

AspeQt/RespeQt has a SIOWorker QThread, but if it is blocked, the GUI is blocked as well...

That's why the serial port is opened in a non blocking mode and every IO operation exits after a timeout to keep the application responsive :-o

  • Like 1
Link to comment
Share on other sites

I just started using RespeQt with DrVenkman's Jan 31, 2016 build. I love it, but if I cmd-Q or RespeQt > Quit RespeQt, it tells me that it quit unexpectedly. Clicking the red button will close it without error.

 

Definitely minor, but annoying. Any ideas what's going on?

 

 

Glad it's working for you! I get the same error, for what it's worth. I think it's got to be some kind of bug in either Qt itself or in the application close/shut down process. Doesn't seem to harm anything or damage any of the loaded .ATR images so far as I can tell, just a silly annoyance.

Link to comment
Share on other sites

  • 2 months later...
  • 3 months later...

I got a new Mini Mac and I downloaded RespeQt-r3, but I'm not able to get it running with my SIO2PC/USB cable.

 

The virtual serial port is visible under /dev

When I change the handshake to NONE, I see at least the RespeQt log window the "GetStatus" command.

However the answer (status) is not reaching the ATARI.

 

I was able to setup Bluetooth connection with my SIO2BT and everything works well.

My SIO2PC/USB cables are OK (work perfectly on a WIndows and on a Linux machines),

so I suspect the serial port driver or the USB hardware (Mini Mac has only USB 3.0 ports).

 

Any ideas?

Link to comment
Share on other sites

I got a new Mini Mac and I downloaded RespeQt-r3, but I'm not able to get it running with my SIO2PC/USB cable.

 

The virtual serial port is visible under /dev

When I change the handshake to NONE, I see at least the RespeQt log window the "GetStatus" command.

However the answer (status) is not reaching the ATARI.

 

I was able to setup Bluetooth connection with my SIO2BT and everything works well.

My SIO2PC/USB cables are OK (work perfectly on a WIndows and on a Linux machines),

so I suspect the serial port driver or the USB hardware (Mini Mac has only USB 3.0 ports).

 

Any ideas?

there are tty devices, and cua devices, maybe try the other? (just a shot in the dark)

Edited by Joey Z
Link to comment
Share on other sites

  • 2 weeks later...

 

It most certainly does. Configure RespeQt for your BT virtual COM port and select "Handshaking: None".

 

Ok this is exciting. I noticed since updating my U1MB my OS slots have changed - which OS provides the SIO2BT patching?

Link to comment
Share on other sites

 

Ok this is exciting. I noticed since updating my U1MB my OS slots have changed - which OS provides the SIO2BT patching?

You can use SIO2BT with any OS by turning on HSIO+SIO2BT in the U1MB PBI BIOS. You can do this without using the SIDE HDD and it's compatible with cartridges. Imminent update supports faster SIO2BT speeds too.

 

Of course you can still use a patched version of the High speed OS if you prefer, or if you use SDX, optionally configure its SIO driver for SIO2BT. PBI high speed driver takes precedence over everything else when enabled, though.

Link to comment
Share on other sites

You can use SIO2BT with any OS by turning on HSIO+SIO2BT in the U1MB PBI BIOS. You can do this without using the SIDE HDD and it's compatible with cartridges. Imminent update supports faster SIO2BT speeds too.

 

Of course you can still use a patched version of the High speed OS if you prefer, or if you use SDX, optionally configure its SIO driver for SIO2BT. PBI high speed driver takes precedence over everything else when enabled, though.

 

Working! I should note that I had to select "SOFTWARE (SIOBT)" under handshake method to get it working in RespeQt. This is with a U1MB and the PBI SIO2BT options enabled, as you suggested. Thanks for the help!

Link to comment
Share on other sites

  • 7 months later...

After looking at the code and thinking it over, I think that this issue simply reveals a poor design of the application :(

Normally GUI applications start threads to execute lengthy or blocking tasks, so the user can still interact with the GUI.

AspeQt/RespeQt has a SIOWorker QThread, but if it is blocked, the GUI is blocked as well...

That's why the serial port is opened in a non blocking mode and every IO operation exits after a timeout to keep the application responsive :-o

yes, this should be fixed. Have we talked about this ever? I'd appreciate it if you could add an issue to github, more things that really should be fixed, to add to the ever growing list.....

Link to comment
Share on other sites

  • 4 months later...

I stil have the issue that sometimes I can drag and drop files into the drive positions but sometimes I have to click the disk icon (or folder icon) and go through the menu to mount an ATR or folder.

 

This isn't a strictly-OS X issue though; I have the same problem running on my RPi boxes, though I don't think I've seen it in (very limited) use with my Win10 box. Of course, my Win10 box is VASTLY overpowered compared to my Pi's, so maybe it's just that the (inefficient) core code just executes faster on my (much faster) Winbox?

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...