1 /* 2 * serialport_posix.h 3 * PHD Guiding 4 * 5 * Created by Hans Lambermont 6 * Copyright (c) 2016 Hans Lambermont 7 * All rights reserved. 8 * 9 * This source code is distributed under the following "BSD" license 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions are met: 12 * Redistributions of source code must retain the above copyright notice, 13 * this list of conditions and the following disclaimer. 14 * Redistributions in binary form must reproduce the above copyright notice, 15 * this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * Neither the name Craig Stark, Stark Labs nor the names of its 18 * contributors may be used to endorse or promote products derived from 19 * this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 * POSSIBILITY OF SUCH DAMAGE. 32 * 33 */ 34 35 #if !defined(SERIALPORT_POSIX_H_INCLUDED) 36 #define SERIALPORT_POSIX_H_INCLUDED 37 38 #if defined (__linux__) || defined (__APPLE__) || defined (__FreeBSD__) 39 40 #include <termios.h> 41 42 class SerialPortPosix : public SerialPort 43 { 44 int m_fd; 45 #if defined (__APPLE__) 46 struct termios m_originalAttrs; 47 #endif 48 49 public: 50 51 wxArrayString GetSerialPortList() override; 52 53 SerialPortPosix(); 54 virtual ~SerialPortPosix(); 55 56 bool Connect(const wxString& portName, int baud, int dataBits, int stopBits, PARITY Parity, bool useRTS, bool useDTR) override; 57 bool Disconnect() override; 58 59 bool Send(const unsigned char *pData, unsigned count) override; 60 61 bool SetReceiveTimeout(int timeoutMilliSeconds) override; 62 bool Receive(unsigned char *pData, unsigned count) override; 63 64 bool SetRTS(bool asserted) override; 65 bool SetDTR(bool asserted) override; 66 }; 67 68 #endif // __linux__ || __APPLE__ 69 70 #endif // SERIALPORT_POSIX_H_INCLUDED 71