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 - 2020 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 
rp::hal::serial_rxtx::clearDTR
virtual void clearDTR()=0
rp::hal::serial_rxtx::ReleaseRxTx
static void ReleaseRxTx(serial_rxtx *)
Definition: linux/net_serial.cpp:470
rp::hal::serial_rxtx::recvdata
virtual int recvdata(unsigned char *data, size_t size)=0
rp::hal::serial_rxtx::flush
virtual void flush(_u32 flags)=0
types.h
rp::hal::serial_rxtx::waitforrecv
virtual int waitforrecv(_u32 timeout=-1, size_t *returned_size=NULL)=0
rp::hal::serial_rxtx::isOpened
virtual bool isOpened()
Definition: abs_rxtx.h:76
rp::hal::serial_rxtx::close
virtual void close()=0
rp::hal::serial_rxtx::serial_rxtx
serial_rxtx()
Definition: abs_rxtx.h:53
rp::hal::serial_rxtx::~serial_rxtx
virtual ~serial_rxtx()
Definition: abs_rxtx.h:54
rp::hal::serial_rxtx::CreateRxTx
static serial_rxtx * CreateRxTx()
Definition: linux/net_serial.cpp:465
rp::hal::serial_rxtx::open
virtual bool open()=0
size
sl_u8 size
Definition: sl_lidar_protocol.h:4
rp::hal::serial_rxtx::rxqueue_count
virtual size_t rxqueue_count()=0
rp::hal::serial_rxtx::bind
virtual bool bind(const char *portname, _u32 baudrate, _u32 flags=0)=0
rp::hal::serial_rxtx::ANS_TIMEOUT
@ ANS_TIMEOUT
Definition: abs_rxtx.h:46
rp::hal::serial_rxtx::ANS_DEV_ERR
@ ANS_DEV_ERR
Definition: abs_rxtx.h:47
rp::hal::serial_rxtx::cancelOperation
virtual void cancelOperation()
Definition: abs_rxtx.h:74
rp::hal::serial_rxtx::waitforsent
virtual int waitforsent(_u32 timeout=-1, size_t *returned_size=NULL)=0
rp::hal::serial_rxtx
Definition: abs_rxtx.h:41
rp::hal::serial_rxtx::waitfordata
virtual int waitfordata(size_t data_count, _u32 timeout=-1, size_t *returned_size=NULL)=0
rp
Definition: rplidar_driver.h:43
rp::hal::serial_rxtx::setDTR
virtual void setDTR()=0
data
sl_u8 data[0]
Definition: sl_lidar_protocol.h:5
rp::hal::serial_rxtx::ANS_OK
@ ANS_OK
Definition: abs_rxtx.h:45
_u32
uint32_t _u32
Definition: rptypes.h:69
rp::hal::serial_rxtx::_is_serial_opened
volatile bool _is_serial_opened
Definition: abs_rxtx.h:82
rp::hal::serial_rxtx::senddata
virtual int senddata(const unsigned char *data, size_t size)=0


rplidar_ros
Author(s):
autogenerated on Fri Aug 2 2024 08:42:13