source: flair-dev/trunk/include/FlairCore/RTDM_I2cPort.h @ 13

Last change on this file since 13 was 13, checked in by Bayard Gildas, 5 years ago

formatting script + include reformatted

File size: 2.0 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file RTDM_I2cPort.h
7 * \brief Class for real time i2c port using RTDM
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2011/08/19
10 * \version 4.0
11 */
12
13#ifndef RTDM_I2CPORT_H
14#define RTDM_I2CPORT_H
15
16#include <I2cPort.h>
17
18namespace flair {
19namespace core {
20/*! \class RTDM_I2cPort
21*
22* \brief Class for real time i2c port using RTDM
23*
24* This class can only be used with the real time version of Framework library.
25*
26*/
27class RTDM_I2cPort : public I2cPort {
28public:
29  /*!
30  * \brief Constructor
31  *
32  * Construct an RTDM i2c port, with the following default values: \n
33  * - 400kbits baudrate \n
34  * - 500000ns RX timeout \n
35  * - 1000000ns TX timeout
36  *
37  * \param parent parent
38  * \param name name
39  * \param device i2c device (ex rti2c1)
40  */
41  RTDM_I2cPort(const Object *parent, std::string name, std::string device);
42
43  /*!
44  * \brief Destructor
45  *
46  */
47  ~RTDM_I2cPort();
48
49  /*!
50  * \brief Set slave's address
51  *
52  * This method need to be called before any communication.
53  *
54  * \param address slave's address
55  */
56  int SetSlave(uint16_t address);
57
58  /*!
59  * \brief Write datas
60  *
61  * \param buf pointer to datas
62  * \param nbyte length of datas
63  *
64  * \return amount of written datas
65  */
66  ssize_t Write(const void *buf, size_t nbyte);
67
68  /*!
69  * \brief Read datas
70  *
71  * \param buf pointer to datas
72  * \param nbyte length of datas
73  *
74  * \return amount of read datas
75  */
76  ssize_t Read(void *buf, size_t nbyte);
77
78  /*!
79  * \brief Set RX timeout
80  *
81  * Timeout for waiting an ACK from the slave.
82  *
83  * \param timeout_ns timeout in nano second
84  */
85  void SetRxTimeout(Time timeout_ns);
86
87  /*!
88  * \brief Set TX timeout
89  *
90  * Timeout for waiting an ACK from the slave.
91  *
92  * \param timeout_ns timeout in nano second
93  */
94  void SetTxTimeout(Time timeout_ns);
95
96private:
97  int fd;
98};
99} // end namespace core
100} // end namespace flair
101
102#endif // RTDM_I2CPORT_H
Note: See TracBrowser for help on using the repository browser.