source: flair-src/trunk/lib/FlairCore/src/RTDM_I2cPort.h@ 15

Last change on this file since 15 was 15, checked in by Bayard Gildas, 6 years ago

sources reformatted with flair-format-dir script

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.