diff -u --new-file -r ../R1/examples/freebsd/Makefile ./examples/freebsd/Makefile --- ../R1/examples/freebsd/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/Makefile Tue Jan 4 21:25:14 2000 @@ -0,0 +1,3 @@ +SUBDIR= lib mweather thermodl thermos tstfind tstmlan tstmlane + +.include diff -u --new-file -r ../R1/examples/freebsd/lib/Makefile ./examples/freebsd/lib/Makefile --- ../R1/examples/freebsd/lib/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/lib/Makefile Tue Jan 4 21:40:23 2000 @@ -0,0 +1,28 @@ + +MLANDIR= ${.CURDIR}/../../../source/lib/userial +.PATH: ${.CURDIR} ${MLANDIR} +LIB= mlan +CFLAGS= -I. -DUCHAR -Wall +NOPROFILE= yes +PREFIX?= /usr/local +LIBDIR= ${PREFIX}/lib + +SRCS= mlanfile.c mlanllu.c mlannetu.c mlansesu.c mlantrnu.c +SRCS+= ds2480ut.c +SRCS+= serial.c + +serial.c: mlan.h + +CLEANFILES+= mlan.h + +beforedepend: mlan.h + @true + +mlan.h: ${MLANDIR}/mlan.h + cp ${MLANDIR}/mlan.h . + +beforeinstall: + ${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ + ${_INSTALLFLAGS} mlan.h ${DESTDIR}/${PREFIX}/include + +.include diff -u --new-file -r ../R1/examples/freebsd/lib/serial.c ./examples/freebsd/lib/serial.c --- ../R1/examples/freebsd/lib/serial.c Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/lib/serial.c Tue Jan 4 21:22:19 2000 @@ -0,0 +1,202 @@ +//--------------------------------------------------------------------------- +// Copyright (C) 1999 Dallas Semiconductor Corporation, All Rights Reserved. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the "Software"), +// to deal in the Software without restriction, including without limitation +// the rights to use, copy, modify, merge, publish, distribute, sublicense, +// and/or sell copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL DALLAS SEMICONDUCTOR BE LIABLE FOR ANY CLAIM, DAMAGES +// OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +// Except as contained in this notice, the name of Dallas Semiconductor +// shall not be used except as stated in the Dallas Semiconductor +// Branding Policy. +//--------------------------------------------------------------------------- +// +// TODO.C - COM functions required by MLANLL.C, MLANTRNU, MLANNETU.C and +// MLanFile.C for MLANU to communicate with the DS2480 based +// Universal Serial Adapter 'U'. Fill in the platform specific code. +// +// Version: 1.03 +// +// History: 1.00 -> 1.01 Added function msDelay. +// +// 1.01 -> 1.02 Changed to generic OpenCOM/CloseCOM for easier +// use with other platforms. +// +// 1.02 -> 1.03 Removed caps in #includes for Linux capatibility +// Add function msGettick() +// + +#include "mlan.h" +#include +#include +#include +#include + +// exportable functions required for +// MLANLL.C, MLANTRNU, or MLANNETU.C +void FlushCOM(void); +int WriteCOM(int, uchar *); +int ReadCOM(int, uchar *); +void BreakCOM(void); +void msDelay(int); +void SetBaudCOM(int); +int OpenCOM(char *); +void CloseCOM(void); +long msGettick(void); + +static int dsfd; +static struct termios pstio; + +//--------------------------------------------------------------------------- +// Description: +// flush the rx and tx buffers +// +void FlushCOM(void) +{ + tcflush(dsfd, TCIOFLUSH); +} + + +//-------------------------------------------------------------------------- +// Write an array of bytes to the COM port, verify that it was +// sent out. Assume that baud rate has been set. +// +// Returns 1 for success and 0 for failure +// +int WriteCOM(int outlen, uchar *outbuf) +{ + + if (outlen == write(dsfd, outbuf, outlen)) + return 1; + return 0; +} + + +//-------------------------------------------------------------------------- +// Read an array of bytes to the COM port, verify that it was +// sent out. Assume that baud rate has been set. +// +// Returns number of characters read +// +int ReadCOM(int inlen, uchar *inbuf) +{ + int i, j; + + for(j = 0; j < inlen; ) { + i = read(dsfd, inbuf + j, inlen -j); + if (i <= 0) + break; + j += i; + } + return j; +} + + +//-------------------------------------------------------------------------- +// Description: +// Send a break on the com port for at least 2 ms +// +void BreakCOM(void) +{ + tcsendbreak(dsfd, 1); +} + + +//-------------------------------------------------------------------------- +// Description: +// Delay for at least 'len' ms +// +void msDelay(int len) +{ + usleep(len * 1000); +} + + +//-------------------------------------------------------------------------- +// Set the baud rate on the com port. The possible baud rates for +// 'new_baud' are: +// +// PARMSET_9600 0x00 +// PARMSET_19200 0x02 +// PARMSET_57600 0x04 +// PARMSET_115200 0x06 +// +void SetBaudCOM(int new_baud) +{ + switch (new_baud) { + case 0x00 /* PARMSET_9600 */: cfsetspeed(&pstio, B9600); break; + case 0x02 /* PARMSET_19200 */: cfsetspeed(&pstio, B19200); break; + case 0x04 /* PARMSET_57600 */: cfsetspeed(&pstio, B57600); break; + case 0x06 /* PARMSET_115200 */: cfsetspeed(&pstio, B115200); break; + } + tcsetattr(dsfd, TCSANOW, &pstio); +} + + +//--------------------------------------------------------------------------- +// Attempt to open a com port. +// Set the starting baud rate to 9600. +// +// 'port_zstr' - zero terminate port name. Format is platform +// dependent. +// +// Returns: TRUE - success, COM port opened +// +int OpenCOM(char *port_zstr) +{ + int i; + + dsfd = open(port_zstr, O_RDWR, 0); + if (dsfd < 0) + return (0); + i = tcgetattr(dsfd, &pstio); + if (i < 0) { + close(dsfd); + return (0); + } + cfmakeraw(&pstio); + pstio.c_cc[VTIME] = 20; + pstio.c_cc[VMIN] = 0; + cfsetspeed(&pstio, B9600); + i = tcsetattr(dsfd, TCSANOW, &pstio); + if (i < 0) { + close(dsfd); + return (0); + } + return 1; +} + + +//--------------------------------------------------------------------------- +// Closes the connection to the port. +// +void CloseCOM(void) +{ + close(dsfd); +} + + +//-------------------------------------------------------------------------- +// Get the current millisecond tick count. Does not have to represent +// an actual time, it just needs to be an incrementing timer. +// +long msGettick(void) +{ + struct timeval tv; + + gettimeofday(&tv, NULL); + return (tv.tv_sec * 1000 + tv.tv_usec / 1000); +} diff -u --new-file -r ../R1/examples/freebsd/mweather/Makefile ./examples/freebsd/mweather/Makefile --- ../R1/examples/freebsd/mweather/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/mweather/Makefile Tue Jan 4 21:39:47 2000 @@ -0,0 +1,17 @@ + +PROG= mweather + +PREFIX?= /usr/local +BINDIR= ${PREFIX}/bin +MLANDIR= ${.CURDIR}/../../../source/ +MLANLIB= ${.CURDIR}/../lib +.PATH: ${MLANDIR}/apps/${PROG} +CFLAGS= -I${MLANLIB} -DUCHAR -Wall +LDADD= -L${MLANLIB} -lmlan +DPADD= ${MLANLIB}/libmlan.a +NOMAN= 1 + +test: ${PROG} + ./${PROG} /dev/cuaa0 + +.include diff -u --new-file -r ../R1/examples/freebsd/thermodl/Makefile ./examples/freebsd/thermodl/Makefile --- ../R1/examples/freebsd/thermodl/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/thermodl/Makefile Tue Jan 4 21:39:51 2000 @@ -0,0 +1,18 @@ + +PROG= thermodl +SRCS= thermodl.c thermout.c + +PREFIX?= /usr/local +BINDIR= ${PREFIX}/bin +MLANDIR= ${.CURDIR}/../../../source/ +MLANLIB= ${.CURDIR}/../lib +.PATH: ${MLANDIR}/apps/thermo +CFLAGS= -I${MLANLIB} -DUCHAR -Wall +LDADD= -L${MLANLIB} -lmlan +DPADD= ${MLANLIB}/libmlan.a +NOMAN= 1 + +test: ${PROG} + ./${PROG} /dev/cuaa0 + +.include diff -u --new-file -r ../R1/examples/freebsd/thermos/Makefile ./examples/freebsd/thermos/Makefile --- ../R1/examples/freebsd/thermos/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/thermos/Makefile Tue Jan 4 21:39:51 2000 @@ -0,0 +1,18 @@ + +PROG= thermoms +SRCS= thermoms.c thermout.c + +PREFIX?= /usr/local +BINDIR= ${PREFIX}/bin +MLANDIR= ${.CURDIR}/../../../source/ +MLANLIB= ${.CURDIR}/../lib +.PATH: ${MLANDIR}/apps/thermo +CFLAGS= -I${MLANLIB} -DUCHAR -Wall +LDADD= -L${MLANLIB} -lmlan +DPADD= ${MLANLIB}/libmlan.a +NOMAN= 1 + +test: ${PROG} + ./${PROG} /dev/cuaa0 + +.include diff -u --new-file -r ../R1/examples/freebsd/tstfind/Makefile ./examples/freebsd/tstfind/Makefile --- ../R1/examples/freebsd/tstfind/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/tstfind/Makefile Tue Jan 4 21:39:31 2000 @@ -0,0 +1,17 @@ + +PROG= tstfind + +PREFIX?= /usr/local +BINDIR= ${PREFIX}/bin +MLANDIR= ${.CURDIR}/../../../source/ +MLANLIB= ${.CURDIR}/../lib +.PATH: ${MLANDIR}/apps/${PROG} +CFLAGS= -I${MLANLIB} -DUCHAR -Wall +LDADD= -L${MLANLIB} -lmlan +DPADD= ${MLANLIB}/libmlan.a +NOMAN= 1 + +test: ${PROG} + ./${PROG} /dev/cuaa0 + +.include diff -u --new-file -r ../R1/examples/freebsd/tstmlan/Makefile ./examples/freebsd/tstmlan/Makefile --- ../R1/examples/freebsd/tstmlan/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/tstmlan/Makefile Tue Jan 4 21:39:57 2000 @@ -0,0 +1,17 @@ + +PROG= tstmlan + +PREFIX?= /usr/local +BINDIR= ${PREFIX}/bin +MLANDIR= ${.CURDIR}/../../../source/ +MLANLIB= ${.CURDIR}/../lib +.PATH: ${MLANDIR}/apps/${PROG} +CFLAGS= -I${MLANLIB} -DUCHAR -Wall +LDADD= -L${MLANLIB} -lmlan +DPADD= ${MLANLIB}/libmlan.a +NOMAN= 1 + +test: ${PROG} + ./${PROG} /dev/cuaa0 + +.include diff -u --new-file -r ../R1/examples/freebsd/tstmlane/Makefile ./examples/freebsd/tstmlane/Makefile --- ../R1/examples/freebsd/tstmlane/Makefile Thu Jan 1 01:00:00 1970 +++ ./examples/freebsd/tstmlane/Makefile Tue Jan 4 21:40:03 2000 @@ -0,0 +1,17 @@ + +PROG= tstmlane + +PREFIX?= /usr/local +BINDIR= ${PREFIX}/bin +MLANDIR= ${.CURDIR}/../../../source/ +MLANLIB= ${.CURDIR}/../lib +.PATH: ${MLANDIR}/apps/${PROG} +CFLAGS= -I${MLANLIB} -DUCHAR -Wall +LDADD= -L${MLANLIB} -lmlan +DPADD= ${MLANLIB}/libmlan.a +NOMAN= 1 + +test: ${PROG} + ./${PROG} /dev/cuaa0 + +.include