Contiki 2.6

rs232.h

00001 /*
00002  * Copyright (c) 2007, Takahide Matsutsuka.
00003  * All rights reserved. 
00004  *
00005  * Redistribution and use in source and binary forms, with or without 
00006  * modification, are permitted provided that the following conditions 
00007  * are met: 
00008  * 1. Redistributions of source code must retain the above copyright 
00009  *    notice, this list of conditions and the following disclaimer. 
00010  * 2. Redistributions in binary form must reproduce the above
00011  *    copyright notice, this list of conditions and the following
00012  *    disclaimer in the documentation and/or other materials provided
00013  *    with the distribution. 
00014  * 3. The name of the author may not be used to endorse or promote
00015  *    products derived from this software without specific prior
00016  *    written permission.  
00017  *
00018  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
00019  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00020  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
00022  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00023  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
00024  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00026  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00027  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00028  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
00029  *
00030  * $Id: rs232.h,v 1.4 2007/09/29 03:58:38 matsutsuka Exp $
00031  *
00032  */
00033 /*
00034  * \file
00035  *      This is RS-232C process based on polling.
00036  * \author
00037  *      Takahide Matsutsuka <markn@markn.org>
00038  */
00039 
00040 #ifndef __RS232_H__
00041 #define __RS232_H__
00042 
00043 /*
00044  * Implement the following methods for each platform.
00045  */
00046 
00047 /*
00048  * An architecture-depend implementation of RS-232C initialization.
00049  */
00050 void rs232_arch_init(unsigned long ubr);
00051 
00052 /*
00053  * An architecture-depend implementation of RS-232C polling.
00054  * @return character, stat == zero if no input.
00055  */
00056 unsigned char rs232_arch_poll(unsigned char* stat);
00057 
00058 /*
00059  * An architecture-depend implementation of RS-232C writing a byte.
00060  */
00061 void rs232_arch_writeb(unsigned char ch);
00062 
00063 PROCESS_NAME(rs232_process);
00064 
00065 /*
00066  * if you want to use simple serial communication,
00067  * define RS232_CONF_CALLBACK as serial_input_byte.
00068  * The default is SLIP.
00069  */
00070 #ifdef RS232_CONF_CALLBACK
00071 #define RS232_CALLBACK                  RS232_CONF_CALLBACK
00072 #else /* RS232_CONF_CALLBACK */
00073 #define RS232_CALLBACK                  slip_input_byte
00074 #endif /* RS232_CONF_CALLBACK */
00075 
00076 #ifdef RS232_CONF_BUFISZE
00077 #define RS232_BUFSIZE RS232_CONF_BUFISZE
00078 #else /* RS232_CONF_BUFISZE */
00079 #define RS232_BUFSIZE 64
00080 #endif /* RS232_CONF_BUFISZE */
00081 
00082 #ifdef RS232_CONF_BAUD_RATE
00083 #define RS232_BAUD_RATE RS232_CONF_BAUD_RATE
00084 #else /* RS232_CONF_BAUD_RATE */
00085 #define RS232_BAUD_RATE 9600
00086 #endif /* RS232_CONF_BAUD_RATE */
00087 
00088 #endif /* __RS232_H__ */