From: <ean...@us...> - 2012-09-09 20:32:05
|
Revision: 10989 http://octave.svn.sourceforge.net/octave/?rev=10989&view=rev Author: eandrius Date: 2012-09-09 20:31:57 +0000 (Sun, 09 Sep 2012) Log Message: ----------- instrument-control: support for Parallel interface Modified Paths: -------------- trunk/octave-forge/main/instrument-control/src/Makefile Added Paths: ----------- trunk/octave-forge/main/instrument-control/src/parallel/ trunk/octave-forge/main/instrument-control/src/parallel/Makefile trunk/octave-forge/main/instrument-control/src/parallel/parallel.cc trunk/octave-forge/main/instrument-control/src/parallel/parallel.h trunk/octave-forge/main/instrument-control/src/parallel/pp_close.cc trunk/octave-forge/main/instrument-control/src/parallel/pp_ctrl.cc trunk/octave-forge/main/instrument-control/src/parallel/pp_data.cc trunk/octave-forge/main/instrument-control/src/parallel/pp_datadir.cc trunk/octave-forge/main/instrument-control/src/parallel/pp_stat.cc Modified: trunk/octave-forge/main/instrument-control/src/Makefile =================================================================== --- trunk/octave-forge/main/instrument-control/src/Makefile 2012-09-09 19:09:48 UTC (rev 10988) +++ trunk/octave-forge/main/instrument-control/src/Makefile 2012-09-09 20:31:57 UTC (rev 10989) @@ -1,11 +1,11 @@ -OCT = instrument-control -SUBDIRS = i2c serial +OCT = instrument-control.oct +SUBDIRS = i2c serial parallel MKOCTFILE ?= mkoctfile all: @for dir in $(SUBDIRS); do $(MAKE) -C $$dir; done - $(MKOCTFILE) i2c/*.o serial/*.o -o $(OCT) + $(MKOCTFILE) i2c/*.o serial/*.o parallel/*.o -o $(OCT) clean: @for dir in $(SUBDIRS); do $(MAKE) -C $$dir clean; done Added: trunk/octave-forge/main/instrument-control/src/parallel/Makefile =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/Makefile (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/Makefile 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,21 @@ +OCT := parallel.oct +OBJ := parallel.o pp_close.o pp_datadir.o pp_data.o pp_stat.o pp_ctrl.o + +MKOCTFILE ?= mkoctfile + +all: $(OBJ) + +oct: $(OCT) + +%.oct: $(OBJ) + $(MKOCTFILE) $^ + +%.o: %.cc + $(MKOCTFILE) -c -s $< + + +clean: + rm -f *.oct *.o + + +.PHONY: all clean Added: trunk/octave-forge/main/instrument-control/src/parallel/parallel.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/parallel.cc (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/parallel.cc 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,125 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> +#include <octave/ov-int32.h> + +#include <iostream> +#include <string> +#include <algorithm> + +#ifndef __WIN32__ +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <unistd.h> +#include <linux/parport.h> +#include <linux/ppdev.h> +#endif + +using std::string; + +#include "parallel.h" + +DEFINE_OCTAVE_ALLOCATOR (octave_parallel); +DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_parallel, "octave_parallel", "octave_parallel"); + +static bool type_loaded = false; + +octave_parallel::octave_parallel() +{ + this->fd = -1; +} + +int octave_parallel::open(string path, int flags) +{ + this->fd = ::open(path.c_str(), flags, 0); + + if (this->fd < 0) + { + error("parallel: Error opening the interface: %s\n", strerror(errno)); + return -1; + } + + // Claim control of parallel port + if (ioctl(this->get_fd(), PPCLAIM) < 0) + { + error("parallel: Error when claiming the interface: %s\n", strerror(errno)); + ::close(this->get_fd()); + return -1; + } + + return 1; +} + +octave_parallel::~octave_parallel() +{ + this->close(); +} + +int octave_parallel::get_fd() +{ + return this->fd; +} + +void octave_parallel::print(std::ostream& os, bool pr_as_read_syntax ) const +{ + print_raw(os, pr_as_read_syntax); + newline(os); +} + +void octave_parallel::print_raw(std::ostream& os, bool pr_as_read_syntax) const +{ + os << this->fd; +} + +// PKG_ADD: autoload ("parallel", "instrument-control.oct"); +DEFUN_DLD (parallel, args, nargout, "") +{ +#ifdef __WIN32__ + error("parallel: Windows platform support is not yet implemented, go away..."); + return octave_value(); +#endif + + int nargin = args.length(); + + // Default values + int oflags = O_RDWR; + string path("/dev/parport0"); + + // Do not open interface if return value is not assigned + if (nargout != 1) + { + print_usage(); + return octave_value(); + } + + // Open the interface + octave_parallel* retval = new octave_parallel(); + + if (retval->open(path, oflags) < 0) + return octave_value(); + + // Set direction to Input + retval->set_datadir(1); + + return octave_value(retval); +} Added: trunk/octave-forge/main/instrument-control/src/parallel/parallel.h =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/parallel.h (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/parallel.h 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,78 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#ifndef parallel_H +#define parallel_H + +#include <octave/oct.h> +#include <octave/ov-int32.h> + +#include <string> + +using std::string; + +class octave_parallel : public octave_base_value +{ +public: + octave_parallel(); + ~octave_parallel(); + + int open(string, int); + int close(); + int get_fd(); + + int get_datadir(); + int set_datadir(int); + + int get_data(); + int set_data(uint8_t); + + int get_stat(); + + int get_ctrl(); + int set_ctrl(uint8_t); + + // Overloaded base functions + double parallel_value() const + { + return (double)this->fd; + } + + virtual double scalar_value (bool frc_str_conv = false) const + { + return (double)this->fd; + } + + void print (std::ostream& os, bool pr_as_read_syntax = false) const; + void print_raw (std::ostream& os, bool pr_as_read_syntax) const; + + // Properties + bool is_constant (void) const { return true;} + bool is_defined (void) const { return true;} + bool print_as_scalar (void) const { return true;} + +private: + int fd; + + // 1 - Input + // 0 - Output + int dir; + + DECLARE_OCTAVE_ALLOCATOR + DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA +}; + + +#endif Added: trunk/octave-forge/main/instrument-control/src/parallel/pp_close.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/pp_close.cc (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/pp_close.cc 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,76 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> + +#include <iostream> +#include <string> +#include <algorithm> + +#ifndef __WIN32__ +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <linux/parport.h> +#include <linux/ppdev.h> +#endif + +using std::string; + +#include "parallel.h" + +// PKG_ADD: autoload ("pp_close", "instrument-control.oct"); +DEFUN_DLD (pp_close, args, nargout, "") +{ + if (args.length() != 1 || args(0).type_id() != octave_parallel::static_type_id()) + { + print_usage(); + return octave_value(-1); + } + + octave_parallel* parallel = NULL; + + const octave_base_value& rep = args(0).get_rep(); + parallel = &((octave_parallel &)rep); + + parallel->close(); + + return octave_value(); +} + +int octave_parallel::close() +{ + if (this->get_fd() < 0) + { + error("parallel: port must be open first..."); + return -1; + } + + // Release parallel port + if (ioctl(this->get_fd(), PPRELEASE) < 0) + error("parallel: error releasing parallel port: %s\n", strerror(errno)); + + int retval = ::close(this->get_fd()); + + this->fd = -1; + + return retval; +} Added: trunk/octave-forge/main/instrument-control/src/parallel/pp_ctrl.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/pp_ctrl.cc (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/pp_ctrl.cc 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,107 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> + +#include <iostream> +#include <string> +#include <algorithm> + +#ifndef __WIN32__ +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <linux/parport.h> +#include <linux/ppdev.h> +#endif + +using std::string; + +#include "parallel.h" + +// PKG_ADD: autoload ("pp_ctrl", "instrument-control.oct"); +DEFUN_DLD (pp_ctrl, args, nargout, "") +{ + if (args.length() < 1 || args.length() > 2 || args(0).type_id() != octave_parallel::static_type_id()) + { + print_usage(); + return octave_value(-1); + } + + octave_parallel* parallel = NULL; + + const octave_base_value& rep = args(0).get_rep(); + parallel = &((octave_parallel &)rep); + + // Set new Control register value + if (args.length() > 1) + { + if ( !(args(1).is_integer_type() || args(1).is_float_type()) ) + { + print_usage(); + return octave_value(-1); + } + + parallel->set_ctrl(args(1).int_value()); + + return octave_value(); + } + + // Return current Control register value on port + return octave_value(parallel->get_ctrl()); +} + +int octave_parallel::set_ctrl(uint8_t ctrl) +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return -1; + } + + if (ioctl(this->get_fd(), PPWCONTROL, &ctrl) < 0) + { + error("parallel: Error while writing to Control register: %s\n", strerror(errno)); + return -1; + } + + return 1; +} + +int octave_parallel::get_ctrl() +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return -1; + } + + uint8_t ctrl; + + if (ioctl(this->get_fd(), PPRCONTROL, &ctrl) < 0) + { + error("parallel: Error while reading from Control register: %s\n", strerror(errno)); + return -1; + } + + return ctrl; +} + Added: trunk/octave-forge/main/instrument-control/src/parallel/pp_data.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/pp_data.cc (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/pp_data.cc 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,116 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> + +#include <iostream> +#include <string> +#include <algorithm> + +#ifndef __WIN32__ +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <linux/parport.h> +#include <linux/ppdev.h> +#endif + +using std::string; + +#include "parallel.h" + +// PKG_ADD: autoload ("pp_data", "instrument-control.oct"); +DEFUN_DLD (pp_data, args, nargout, "") +{ + if (args.length() < 1 || args.length() > 2 || args(0).type_id() != octave_parallel::static_type_id()) + { + print_usage(); + return octave_value(-1); + } + + octave_parallel* parallel = NULL; + + const octave_base_value& rep = args(0).get_rep(); + parallel = &((octave_parallel &)rep); + + // Set new Data register value + if (args.length() > 1) + { + if ( !(args(1).is_integer_type() || args(1).is_float_type()) ) + { + print_usage(); + return octave_value(-1); + } + + parallel->set_datadir(args(1).int_value()); + + return octave_value(); + } + + // Return current Data register value on port + return octave_value(parallel->get_data()); +} + +int octave_parallel::set_data(uint8_t data) +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return -1; + } + + /* + if (this->get_dir() == 1) + { + error("parallel: Trying to output data while in Input mode, this can result in hardware damage! \ + Use override if you know what you are doing..."); + return false; + } + */ + + if (ioctl(this->get_fd(), PPWDATA, &data) < 0) + { + error("parallel: Error while writing to Data register: %s\n", strerror(errno)); + return -1; + } + + return 1; +} + +int octave_parallel::get_data() +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return -1; + } + + uint8_t data; + + if (ioctl(this->get_fd(), PPRDATA, &data) < 0) + { + error("parallel: Error while reading from Data register: %s\n", strerror(errno)); + return -1; + } + + return data; +} + Added: trunk/octave-forge/main/instrument-control/src/parallel/pp_datadir.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/pp_datadir.cc (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/pp_datadir.cc 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,110 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> + +#include <iostream> +#include <string> +#include <algorithm> + +#ifndef __WIN32__ +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <linux/parport.h> +#include <linux/ppdev.h> +#endif + +using std::string; + +#include "parallel.h" + +// PKG_ADD: autoload ("pp_datadir", "instrument-control.oct"); +DEFUN_DLD (pp_datadir, args, nargout, "") +{ + if (args.length() < 1 || args.length() > 2 || args(0).type_id() != octave_parallel::static_type_id()) + { + print_usage(); + return octave_value(-1); + } + + octave_parallel* parallel = NULL; + + const octave_base_value& rep = args(0).get_rep(); + parallel = &((octave_parallel &)rep); + + // Set new direction + if (args.length() > 1) + { + if ( !(args(1).is_integer_type() || args(1).is_float_type()) ) + { + print_usage(); + return octave_value(-1); + } + + parallel->set_datadir(args(1).int_value()); + + return octave_value(); + } + + // Return current direction + return octave_value(parallel->get_datadir()); +} + +int octave_parallel::set_datadir(int dir) +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return -1; + } + + if (dir != 1 || dir != 0) + { + error("parallel: Unsupported data direction..."); + return -1; + } + + // The ioctl parameter is a pointer to an int. + // If the int is zero, the drivers are turned on (forward/output direction); + // if non-zero, the drivers are turned off (reverse/input direction). + if (ioctl(this->get_fd(), PPDATADIR, &dir) < 0) + { + error("pp_datadir: error setting data direction: %s\n", strerror(errno)); + return false; + } + + this->dir = dir; + + return 1; +} + +int octave_parallel::get_datadir() +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return false; + } + + return this->dir; +} + Added: trunk/octave-forge/main/instrument-control/src/parallel/pp_stat.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/parallel/pp_stat.cc (rev 0) +++ trunk/octave-forge/main/instrument-control/src/parallel/pp_stat.cc 2012-09-09 20:31:57 UTC (rev 10989) @@ -0,0 +1,76 @@ +// Copyright (C) 2012 Andrius Sutas <and...@gm...> +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, see <http://www.gnu.org/licenses/>. + +#include <octave/oct.h> + +#include <iostream> +#include <string> +#include <algorithm> + +#ifndef __WIN32__ +#include <errno.h> +#include <string.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <linux/parport.h> +#include <linux/ppdev.h> +#endif + +using std::string; + +#include "parallel.h" + +// PKG_ADD: autoload ("pp_stat", "instrument-control.oct"); +DEFUN_DLD (pp_stat, args, nargout, "") +{ + if (args.length() != 1 || args(0).type_id() != octave_parallel::static_type_id()) + { + print_usage(); + return octave_value(-1); + } + + octave_parallel* parallel = NULL; + + const octave_base_value& rep = args(0).get_rep(); + parallel = &((octave_parallel &)rep); + + // Return current Status register value on port + return octave_value(parallel->get_stat()); +} + + +int octave_parallel::get_stat() +{ + if (this->get_fd() < 0) + { + error("parallel: Open the interface first..."); + return -1; + } + + uint8_t status; + + if (ioctl(this->get_fd(), PPRSTATUS, &status) < 0) + { + error("parallel: Error while reading from Status register: %s\n", strerror(errno)); + return -1; + } + + return status; +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ean...@us...> - 2012-09-15 16:03:04
|
Revision: 11029 http://octave.svn.sourceforge.net/octave/?rev=11029&view=rev Author: eandrius Date: 2012-09-15 16:02:57 +0000 (Sat, 15 Sep 2012) Log Message: ----------- instrument-control: fix for 'no newline at end of file' compiler warning Modified Paths: -------------- trunk/octave-forge/main/instrument-control/src/i2c/i2c_addr.cc trunk/octave-forge/main/instrument-control/src/i2c/i2c_close.cc trunk/octave-forge/main/instrument-control/src/serial/srl_baudrate.cc trunk/octave-forge/main/instrument-control/src/serial/srl_bytesize.cc trunk/octave-forge/main/instrument-control/src/serial/srl_close.cc trunk/octave-forge/main/instrument-control/src/serial/srl_flush.cc trunk/octave-forge/main/instrument-control/src/serial/srl_parity.cc trunk/octave-forge/main/instrument-control/src/serial/srl_read.cc trunk/octave-forge/main/instrument-control/src/serial/srl_stopbits.cc trunk/octave-forge/main/instrument-control/src/serial/srl_timeout.cc trunk/octave-forge/main/instrument-control/src/serial/srl_write.cc Modified: trunk/octave-forge/main/instrument-control/src/i2c/i2c_addr.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/i2c/i2c_addr.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/i2c/i2c_addr.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -85,4 +85,4 @@ } return this->addr; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/i2c/i2c_close.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/i2c/i2c_close.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/i2c/i2c_close.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -55,4 +55,4 @@ this->fd = -1; return retval; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_baudrate.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_baudrate.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_baudrate.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -202,4 +202,4 @@ return retval; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_bytesize.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_bytesize.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_bytesize.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -134,4 +134,4 @@ retval = 8; return retval; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_close.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_close.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_close.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -71,4 +71,4 @@ this->fd = -1; return retval; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_flush.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_flush.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_flush.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -103,4 +103,4 @@ } return ::tcflush(this->get_fd(), flag); -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_parity.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_parity.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_parity.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -139,4 +139,4 @@ return "Odd"; else return "Even"; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_read.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_read.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_read.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -112,4 +112,4 @@ } return ::read(get_fd(), buf, len); -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_stopbits.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_stopbits.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_stopbits.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -123,4 +123,4 @@ return 2; else return 1; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_timeout.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_timeout.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_timeout.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -120,4 +120,4 @@ return -1; else return this->config.c_cc[VTIME]; -} \ No newline at end of file +} Modified: trunk/octave-forge/main/instrument-control/src/serial/srl_write.cc =================================================================== --- trunk/octave-forge/main/instrument-control/src/serial/srl_write.cc 2012-09-15 15:16:30 UTC (rev 11028) +++ trunk/octave-forge/main/instrument-control/src/serial/srl_write.cc 2012-09-15 16:02:57 UTC (rev 11029) @@ -103,4 +103,4 @@ } return ::write(get_fd(), buf, len); -} \ No newline at end of file +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |