source: flair-src/trunk/lib/FlairCore/src/Unix_I2cPort.h @ 2

Last change on this file since 2 was 2, checked in by Sanahuja Guillaume, 6 years ago

flaircore

File size: 2.4 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 Unix_I2cPort.h
7 * \brief Class for unix i2c port
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2014/08/28
10 * \version 4.0
11 */
12
13#ifndef UNIX_I2CPORT_H
14#define UNIX_I2CPORT_H
15
16#include <I2cPort.h>
17
18namespace flair
19{
20namespace core
21{
22    /*! \class Unix_I2cPort
23    *
24    * \brief Class for unix serial port
25    *
26    */
27    class Unix_I2cPort: public I2cPort
28    {
29
30        public:
31            /*!
32            * \brief Constructor
33            *
34            * Construct an unix i2c port
35            *
36            * \param parent parent
37            * \param name name
38            * \param device serial device (ex /dev/i2c-1)
39            */
40            Unix_I2cPort(const Object* parent,std::string port_name,std::string device);
41
42            /*!
43            * \brief Destructor
44            *
45            */
46            ~Unix_I2cPort();
47
48            /*!
49            * \brief Set slave's address
50            *
51            * This method need to be called before any communication.
52            *
53            * \param address slave's address
54            */
55            int SetSlave(uint16_t address);
56
57            /*!
58            * \brief Set RX timeout
59            *
60            * Timeout for waiting datas.
61            *
62            * \param timeout_ns timeout in nano second
63            */
64            void SetRxTimeout(Time timeout_ns);
65
66            /*!
67            * \brief Set TX timeout
68            *
69            * Timeout for waiting an ACK from the slave.
70            *
71            * \param timeout_ns timeout in nano second
72            */
73            void SetTxTimeout(Time timeout_ns);
74
75            /*!
76            * \brief Write datas
77            *
78            * \param buf pointer to datas
79            * \param nbyte length of datas
80            *
81            * \return amount of written datas
82            */
83            ssize_t Write(const void *buf,size_t nbyte);
84
85            /*!
86            * \brief Read datas
87            *
88            * \param buf pointer to datas
89            * \param nbyte length of datas
90            *
91            * \return amount of read datas
92            */
93            ssize_t Read(void *buf,size_t nbyte);
94
95        private:
96            int fd;
97    };
98} // end namespace core
99} // end namespace flair
100
101#endif // UNIX_I2CPORT_H
Note: See TracBrowser for help on using the repository browser.