Dosbox Direct Serial Rx Delay
Here is how I have the dosbox.conf file setup.serial1=directserial realport:ttyS1 startbps:9600 parity:N stopbits:1 bytesize:8The serial port is /dev/ttyS1. I am able to connect to the plc using minicom with these parameters.I have tried connecting in Windows with the dosbox release 0.65 with no success. I have not tried using the latest in cvs. I really prefer setting this up for linux.I have tried to increase the cycles with no success. What should I increase the cycles to?
Newbie Posts: 6 Joined: 2007-3-01 @ 02:23. Here is the output in the file.
I am trying to us doxbox to run a dos program to program a control panel for industrial equipment. I am using com:1. I can talk to the unit but the unit is not talking back to PC.
Hal, my old friend-It has been some months since I started using your 0.65 build with the DirectSerial enhancements. The version I have works for alot of things, but not all. So, I have some questions, answers which are not entriely apparent from past posts:1. Did your enhanced DirecSerial mods become integrated into 0.70?2.
Have you made any changes to DirectSerial since 9/17/06?3. Does your code now do anything with the Ring Indicator handshake line?I'm asking, because one of the applications that still doesn't work rightuses this line.If your DirectSerial code has been folded into the 0.70 release, then I will test it, and see what works, and what doesn't.I want you to know also, that your efforts are.GREATLY. appreciated by a whole community of users of DOSBox, who use it to program their radio equipment. DOSBox (and your directserial subsystem) makes this SO much simpler.Newbie Posts: 9 Joined: 2006-8-29 @ 15:15. Hello,I'm posting here, without opening a new thread because it's a 'serial port' related one.I hope it isn't a mistake.System:notebook P4 1.8serial port on m.board (not usb or pcmcia).o.s.
Dosbox Direct Serial Rx Delay List
Simply put, a serial port implemented in software requires the program to sample the input pin fast enough to detect every transition. To satisfy the we need the program to sample the data twice as fast as we expect the data to change.A serial port implemented in hardware might only need to be sampled at 1/16 this rate assuming the data size is 8 bits.Your program implements a serial port in software which is admirably keeping up with the received data. However, when you tell the program to send the message 'Received' plus the string that was received, the program stops looking at the serial input pin long enough for data to go missing.By far the easiest solution would be to use a hardware implemented serial port. If this is not possible consider approaching the problem using interrupts.
However, while a powerful programming tool, interrupts can be difficult to implement and hard to debug. SoftwareSerial has a considerable overhead. It can often send at 115200 successfully but 9600 is about its limit for receiving, and you're trying both send and receive.
In addition, for each character your code receives, it transmits considerably more than that 1 character (11 characters, by my count). It isn't too surprising that it would fall behind. You will need to either reduce the size of what you echo or reduce the rate at which you send characters to it (which is what you accomplished with your delay) so that the transmission (echo) rate can keep up.Update:The OP reports success with continuous reception by, and transmission from, the Arduino at 57600 baud (but not at the same time). The transmission rate would be consistent with my experience transmitting at 115200 baud (blindly and for short bursts, to reconfigure ESP8266-01s that were shipped with a preset 115200 rate.