Main MRPT website > C++ reference for MRPT 1.5.6
abs_rxtx.h
Go to the documentation of this file.
1 /*
2  * RPLIDAR SDK
3  *
4  * Copyright (c) 2009 - 2014 RoboPeak Team
5  * http://www.robopeak.com
6  * Copyright (c) 2014 - 2016 Shanghai Slamtec Co., Ltd.
7  * http://www.slamtec.com
8  *
9  */
10 /*
11  * Redistribution and use in source and binary forms, with or without
12  * modification, are permitted provided that the following conditions are met:
13  *
14  * 1. Redistributions of source code must retain the above copyright notice,
15  * this list of conditions and the following disclaimer.
16  *
17  * 2. Redistributions in binary form must reproduce the above copyright notice,
18  * this list of conditions and the following disclaimer in the documentation
19  * and/or other materials provided with the distribution.
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,
23  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
25  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  *
33  */
34 
35 #pragma once
36 
37 #include "rptypes.h"
38 
39 namespace rp{ namespace hal{
40 
42 {
43 public:
44  enum{
45  ANS_OK = 0,
48  };
49 
50  static serial_rxtx * CreateRxTx();
51  static void ReleaseRxTx( serial_rxtx * );
52 
54  virtual ~serial_rxtx(){}
55 
56  virtual void flush( _u32 flags) = 0;
57 
58  virtual bool bind(const char * portname, _u32 baudrate, _u32 flags = 0) = 0;
59  virtual bool open() = 0;
60  virtual void close() = 0;
61 
62  virtual int waitfordata(size_t data_count,_u32 timeout = -1, size_t * returned_size = NULL) = 0;
63 
64  virtual int senddata(const unsigned char * data, size_t size) = 0;
65  virtual int recvdata(unsigned char * data, size_t size) = 0;
66 
67  virtual int waitforsent(_u32 timeout = -1, size_t * returned_size = NULL) = 0;
68  virtual int waitforrecv(_u32 timeout = -1, size_t * returned_size = NULL) = 0;
69 
70  virtual size_t rxqueue_count() = 0;
71 
72  virtual void setDTR() = 0;
73  virtual void clearDTR() = 0;
74 
75  virtual bool isOpened()
76  {
77  return _is_serial_opened;
78  }
79 
80 protected:
81  volatile bool _is_serial_opened;
82 };
83 
84 }}
85 
86 
87 
virtual int recvdata(unsigned char *data, size_t size)=0
virtual bool bind(const char *portname, _u32 baudrate, _u32 flags=0)=0
virtual bool isOpened()
Definition: abs_rxtx.h:75
virtual void setDTR()=0
virtual int senddata(const unsigned char *data, size_t size)=0
static serial_rxtx * CreateRxTx()
static void ReleaseRxTx(serial_rxtx *)
volatile bool _is_serial_opened
Definition: abs_rxtx.h:81
virtual bool open()=0
virtual void close()=0
virtual int waitforsent(_u32 timeout=-1, size_t *returned_size=NULL)=0
virtual void clearDTR()=0
virtual int waitfordata(size_t data_count, _u32 timeout=-1, size_t *returned_size=NULL)=0
virtual ~serial_rxtx()
Definition: abs_rxtx.h:54
uint32_t _u32
Definition: rptypes.h:69
virtual void flush(_u32 flags)=0
GLsizeiptr size
Definition: glext.h:3779
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: glext.h:3520
virtual int waitforrecv(_u32 timeout=-1, size_t *returned_size=NULL)=0
virtual size_t rxqueue_count()=0



Page generated by Doxygen 1.8.14 for MRPT 1.5.6 Git: 4c65e8431 Tue Apr 24 08:18:17 2018 +0200 at lun oct 28 01:35:26 CET 2019