mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-04 22:33:27 +00:00
130997ebdc
devices. Only DS2480 bases serial port attachment is supported. Reviewed by: cpiazza
374 lines
11 KiB
Plaintext
374 lines
11 KiB
Plaintext
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 <bsd.subdir.mk>
|
|
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 <bsd.lib.mk>
|
|
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 <fcntl.h>
|
|
+#include <unistd.h>
|
|
+#include <termios.h>
|
|
+#include <sys/time.h>
|
|
+
|
|
+// 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 * 10000);
|
|
+}
|
|
+
|
|
+
|
|
+//--------------------------------------------------------------------------
|
|
+// 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 <bsd.prog.mk>
|
|
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 <bsd.prog.mk>
|
|
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 <bsd.prog.mk>
|
|
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 <bsd.prog.mk>
|
|
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 <bsd.prog.mk>
|
|
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 <bsd.prog.mk>
|