2424
2525#include < functional>
2626
27- #include " Stream.h"
2827#include " Arduino.h"
28+ #include " api/HardwareI2C.h"
2929extern " C" {
3030#include " utility/twi.h"
3131}
@@ -41,7 +41,7 @@ extern "C" {
4141// WIRE_HAS_END means Wire has end()
4242#define WIRE_HAS_END 1
4343
44- class TwoWire : public Stream {
44+ class TwoWire : public arduino ::HardwareI2C {
4545 public:
4646 typedef std::function<void (int )> cb_function_receive_t ;
4747 typedef std::function<void (void )> cb_function_request_t ;
@@ -76,14 +76,14 @@ class TwoWire : public Stream {
7676 void recoverBus (void );
7777
7878 public:
79- TwoWire (uint32_t sda = SDA, uint32_t scl = SCL);
79+ TwoWire (pin_size_t sda = SDA, pin_size_t scl = SCL);
8080 ~TwoWire ();
8181 // setSCL/SDA have to be called before begin()
82- void setSCL (uint32_t scl)
82+ void setSCL (pin_size_t scl)
8383 {
8484 _i2c.scl = digitalPinToPinName (scl);
8585 };
86- void setSDA (uint32_t sda)
86+ void setSDA (pin_size_t sda)
8787 {
8888 _i2c.sda = digitalPinToPinName (sda);
8989 };
@@ -95,31 +95,46 @@ class TwoWire : public Stream {
9595 {
9696 _i2c.sda = sda;
9797 };
98- void begin (bool generalCall = false );
99- void begin (uint32_t , uint32_t );
98+ void begin (bool generalCall);
99+ void begin (pin_size_t , pin_size_t );
100100 void begin (uint8_t , bool generalCall = false , bool NoStretchMode = false );
101101 void begin (int , bool generalCall = false , bool NoStretchMode = false );
102- void end ();
103- void setClock (uint32_t );
104- void beginTransmission (uint8_t );
102+ void begin () override
103+ {
104+ begin (false );
105+ }
106+ void begin (uint8_t address) override
107+ {
108+ begin (address, false , false );
109+ }
110+ void end () override ;
111+ void setClock (uint32_t freq) override ;
112+ void beginTransmission (uint8_t address) override ;
105113 void beginTransmission (int );
106- uint8_t endTransmission (void );
107- uint8_t endTransmission (uint8_t ) ;
114+ uint8_t endTransmission (void ) override ;
115+ uint8_t endTransmission (bool stopBit) override ;
108116 uint8_t requestFrom (uint8_t , uint8_t );
109117 uint8_t requestFrom (uint8_t , uint8_t , uint8_t );
110- uint8_t requestFrom (uint8_t , size_t , bool ) ;
118+ size_t requestFrom (uint8_t address , size_t len , bool stopBit) override ;
111119 uint8_t requestFrom (uint8_t , uint8_t , uint32_t , uint8_t , uint8_t );
112120 uint8_t requestFrom (int , int );
113121 uint8_t requestFrom (int , int , int );
114- virtual size_t write (uint8_t );
115- virtual size_t write (const uint8_t *, size_t );
116- virtual int available (void );
117- virtual int read (void );
118- virtual int peek (void );
119- virtual void flush (void );
122+ size_t requestFrom (uint8_t address, size_t len) override
123+ {
124+ return (size_t )requestFrom (address, (uint8_t )len);
125+ }
126+
127+ size_t write (uint8_t ) override ;
128+ size_t write (const uint8_t *, size_t ) override ;
129+ int available (void ) override ;
130+ int read (void ) override ;
131+ int peek (void ) override ;
132+ void flush (void ) override ;
120133
121134 void onReceive (cb_function_receive_t callback);
135+ void onReceive (void (*)(int )) override ;
122136 void onRequest (cb_function_request_t callback);
137+ void onRequest (void (*)(void )) override ;
123138
124139 inline size_t write (unsigned long n)
125140 {
0 commit comments