mirror of
https://github.com/fasteddy516/SimplySerial.git
synced 2024-11-24 10:04:35 +00:00
Allow use of any available baud rate.
This commit is contained in:
parent
b555181cb3
commit
16722d499c
@ -13,7 +13,7 @@ namespace SimplySerial
|
|||||||
{
|
{
|
||||||
class SimplySerial
|
class SimplySerial
|
||||||
{
|
{
|
||||||
const string version = "0.6.0";
|
const string version = "0.7.0";
|
||||||
|
|
||||||
private const int STD_OUTPUT_HANDLE = -11;
|
private const int STD_OUTPUT_HANDLE = -11;
|
||||||
private const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
|
private const uint ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x0004;
|
||||||
@ -175,7 +175,7 @@ namespace SimplySerial
|
|||||||
}
|
}
|
||||||
|
|
||||||
// if we get this far, it should be safe to set up the specified/selected serial port
|
// if we get this far, it should be safe to set up the specified/selected serial port
|
||||||
serialPort = new SerialPort(port.name, baud, parity, dataBits, stopBits)
|
serialPort = new SerialPort(port.name)
|
||||||
{
|
{
|
||||||
Handshake = Handshake.None, // we don't need to support any handshaking at this point
|
Handshake = Handshake.None, // we don't need to support any handshaking at this point
|
||||||
ReadTimeout = 1, // minimal timeout - we don't want to wait forever for data that may not be coming!
|
ReadTimeout = 1, // minimal timeout - we don't want to wait forever for data that may not be coming!
|
||||||
@ -184,6 +184,21 @@ namespace SimplySerial
|
|||||||
RtsEnable = true // without this we don't ever receive any data
|
RtsEnable = true // without this we don't ever receive any data
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// attempt to set the baud rate, fail if the specified value is not supported by the hardware
|
||||||
|
try
|
||||||
|
{
|
||||||
|
serialPort.BaudRate = baud;
|
||||||
|
}
|
||||||
|
catch (ArgumentOutOfRangeException)
|
||||||
|
{
|
||||||
|
ExitProgram(("The specified baud rate (" + baud + ") is not supported."), exitCode: -2);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set other port parameters (which have already been validated)
|
||||||
|
serialPort.Parity = parity;
|
||||||
|
serialPort.DataBits = dataBits;
|
||||||
|
serialPort.StopBits = stopBits;
|
||||||
|
|
||||||
// attempt to open the serial port, deal with failures
|
// attempt to open the serial port, deal with failures
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -403,16 +418,10 @@ namespace SimplySerial
|
|||||||
autoConnect = AutoConnect.ONE;
|
autoConnect = AutoConnect.ONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// validate baud rate, terminate on error
|
// process baud rate, invalid rates will throw exceptions and get handled elsewhere
|
||||||
else if (argument[0].StartsWith("b"))
|
else if (argument[0].StartsWith("b"))
|
||||||
{
|
{
|
||||||
// these are the baud rates we're supporting for now
|
baud = Convert.ToInt32(argument[1]);
|
||||||
string[] availableBaudRates = new string[] { "1200", "2400", "4800", "7200", "9600", "14400", "19200", "38400", "57600", "115200" };
|
|
||||||
|
|
||||||
if (availableBaudRates.Contains(argument[1]))
|
|
||||||
baud = Convert.ToInt32(argument[1]);
|
|
||||||
else
|
|
||||||
ExitProgram(("Invalid baud rate specified <" + argument[1] + ">"), exitCode: -1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// validate parity, terminate on error
|
// validate parity, terminate on error
|
||||||
@ -580,7 +589,7 @@ namespace SimplySerial
|
|||||||
Console.WriteLine(" -list Display a list of available serial (COM) ports");
|
Console.WriteLine(" -list Display a list of available serial (COM) ports");
|
||||||
Console.WriteLine(" -com:PORT COM port number (i.e. 1 for COM1, 22 for COM22, etc.)");
|
Console.WriteLine(" -com:PORT COM port number (i.e. 1 for COM1, 22 for COM22, etc.)");
|
||||||
Console.WriteLine(" -baud:RATE 1200 | 2400 | 4800 | 7200 | 9600 | 14400 | 19200 | 38400 |");
|
Console.WriteLine(" -baud:RATE 1200 | 2400 | 4800 | 7200 | 9600 | 14400 | 19200 | 38400 |");
|
||||||
Console.WriteLine(" 57600 | 115200");
|
Console.WriteLine(" 57600 | 115200 | (Any valid baud rate for the specified port.)");
|
||||||
Console.WriteLine(" -parity:PARITY NONE | EVEN | ODD | MARK | SPACE");
|
Console.WriteLine(" -parity:PARITY NONE | EVEN | ODD | MARK | SPACE");
|
||||||
Console.WriteLine(" -databits:VAL 4 | 5 | | 7 | 8");
|
Console.WriteLine(" -databits:VAL 4 | 5 | | 7 | 8");
|
||||||
Console.WriteLine(" -stopbits:VAL 0 | 1 | 1.5 | 2");
|
Console.WriteLine(" -stopbits:VAL 0 | 1 | 1.5 | 2");
|
||||||
|
Loading…
Reference in New Issue
Block a user