source: xtideuniversalbios/trunk/Serial_Server/library/Serial.cpp@ 481

Last change on this file since 481 was 376, checked in by gregli@…, 12 years ago

WIDE checkin... Added copyright and license information to sorce files, as per the GPL instructions for usage.

File size: 1.9 KB
RevLine 
[209]1//======================================================================
2//
3// Project: XTIDE Universal BIOS, Serial Port Server
4//
5// File: Serial.cpp - Generic functions for dealing with serial communications
6//
7
[376]8//
9// XTIDE Universal BIOS and Associated Tools
10// Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
11//
12// This program is free software; you can redistribute it and/or modify
13// it under the terms of the GNU General Public License as published by
14// the Free Software Foundation; either version 2 of the License, or
15// (at your option) any later version.
16//
17// This program is distributed in the hope that it will be useful,
18// but WITHOUT ANY WARRANTY; without even the implied warranty of
19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20// GNU General Public License for more details.
21// Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22//
23
[209]24#include "library.h"
25#include <stdlib.h>
26#include <string.h>
27
28struct baudRate supportedBaudRates[] =
29{
[233]30 { 2400, 0x30, "2400" },
31 { 4800, 0x18, "4800" },
32 { 9600, 0xc, "9600" },
33 { 19200, 0xff, "19.2K" },
34 { 28800, 0x4, "28.8K" },
35 { 38400, 0xff, "38.4K" },
36 { 57600, 0x2, "57.6K" },
37 { 76800, 0xff, "76.8K" },
38 { 115200, 0x1, "115.2K" },
39 { 153600, 0xff, "153.6K" },
40 { 230400, 0xff, "230.4K" },
41 { 460800, 0xff, "460.8K" },
42 { 0, 0, "Unknown" },
[209]43};
44
45struct baudRate *baudRateMatchString( char *str )
46{
47 struct baudRate *b;
48
49 unsigned long a = atol( str );
50 if( a )
51 {
52 for( b = supportedBaudRates; b->rate; b++ )
[215]53 if( b->rate == a || (b->rate / 1000) == a || ((b->rate + 500) / 1000) == a )
[209]54 return( b );
55 }
56
[233]57 return( b );
[209]58}
59
60struct baudRate *baudRateMatchDivisor( unsigned char divisor )
61{
62 struct baudRate *b;
63
64 for( b = supportedBaudRates; b->rate && b->divisor != divisor; b++ )
65 ;
66
[233]67 return( b );
[209]68}
69
70
Note: See TracBrowser for help on using the repository browser.