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 - 2019 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 "hal/types.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  virtual void cancelOperation() {}
75 
76  virtual bool isOpened()
77  {
78  return _is_serial_opened;
79  }
80 
81 protected:
82  volatile bool _is_serial_opened;
83 };
84 
85 }}
86 
87 
88 
virtual int recvdata(unsigned char *data, size_t size)=0
virtual void cancelOperation()
Definition: abs_rxtx.h:74
virtual bool bind(const char *portname, _u32 baudrate, _u32 flags=0)=0
virtual bool isOpened()
Definition: abs_rxtx.h:76
_u8 size
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:82
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
_u8 data[0]
virtual int waitforrecv(_u32 timeout=-1, size_t *returned_size=NULL)=0
virtual size_t rxqueue_count()=0


rplidar_ros
Author(s):
autogenerated on Wed Mar 20 2019 07:54:15