OneWire Library for Arduino  version: 1.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
DS28E17.h
Go to the documentation of this file.
1 /******************************************************************/
33 #ifndef OneWire_Bridge_DS28E17
34 #define OneWire_Bridge_DS28E17
35 
36 #include <stdint.h>
37 #include <stddef.h>
38 #include "Slaves/OneWireSlave.h"
39 
40 namespace OneWire
41 {
42  class OneWireMaster;
43 
61  class DS28E17 : public OneWireSlave
62  {
63  public:
64 
65  static const uint8_t DS28E17_FAMILY_CODE = 0x19;
66 
68  enum CmdResult
69  {
79  };
80 
81  /**********************************************************/
91 
92  /**********************************************************/
126  CmdResult I2C_WriteDataWithStop(uint8_t I2C_addr, uint8_t length,
127  uint8_t *data, uint8_t &status,
128  uint8_t &wr_status);
129 
130  /**********************************************************/
164  CmdResult I2C_WriteDataNoStop(uint8_t I2C_addr, uint8_t length,
165  uint8_t *data, uint8_t &status,
166  uint8_t &wr_status);
167 
168 
169  /**********************************************************/
198  CmdResult I2C_WriteDataOnly(uint8_t length, uint8_t *data,
199  uint8_t &status, uint8_t &wr_status);
200 
201 
202  /**********************************************************/
231  CmdResult I2C_WriteDataOnlyWithStop(uint8_t length, uint8_t *data,
232  uint8_t &status, uint8_t &wr_status);
233 
234 
235  /**********************************************************/
276  CmdResult I2C_WriteReadDataWithStop(uint8_t I2C_addr, uint8_t length,
277  uint8_t *data, uint8_t nu_bytes_read,
278  uint8_t &status, uint8_t &wr_status,
279  uint8_t *read_data);
280 
281 
282  /**********************************************************/
312  CmdResult I2C_ReadDataWithStop(uint8_t I2C_addr, uint8_t nu_bytes_read,
313  uint8_t &status, uint8_t *read_data);
314 
315 
316  /**********************************************************/
327  CmdResult WriteConfigReg(uint8_t data);
328 
329 
330  /**********************************************************/
340  CmdResult ReadConfigReg(uint8_t & config);
341 
342 
343  /**********************************************************/
352 
353 
354  /**********************************************************/
364  CmdResult ReadDeviceRevision(uint8_t & rev);
365 
366  private:
367  static const size_t pollLimit = 10000;
368 
369  CmdResult send_packet(const uint8_t * data, uint8_t data_length,
370  uint8_t & status, uint8_t & wr_status);
371 
372  //overloaded function for I2C read only command
373  CmdResult send_packet(const uint8_t * data, uint8_t data_length,
374  uint8_t & status);
375  };
376 }
377 
378 #endif
379 
CmdResult I2C_WriteDataOnlyWithStop(uint8_t length, uint8_t *data, uint8_t &status, uint8_t &wr_status)
Write to selected DS28E17's I2C with Stop. Poll until I2C write complete and receive status info...
Definition: DS28E17.cpp:211
DS28E17 1-Wire®-to-I2C Master Bridge.
Definition: DS28E17.h:61
CmdResult I2C_WriteReadDataWithStop(uint8_t I2C_addr, uint8_t length, uint8_t *data, uint8_t nu_bytes_read, uint8_t &status, uint8_t &wr_status, uint8_t *read_data)
Write to selected DS28E17's I2C with Stop and poll until I2C write complete receive status info...
Definition: DS28E17.cpp:257
CmdResult I2C_ReadDataWithStop(uint8_t I2C_addr, uint8_t nu_bytes_read, uint8_t &status, uint8_t *read_data)
Selected DS28E17's and send I2C address and poll until I2C read address complete, receive status info...
Definition: DS28E17.cpp:326
Definition: DS28E17.h:72
CmdResult WriteConfigReg(uint8_t data)
Write to Configuration Register of DS28E17.
Definition: DS28E17.cpp:381
Base class for all 1-Wire Slaves.
Definition: OneWireSlave.h:46
Definition: DS28E17.h:71
CmdResult I2C_WriteDataNoStop(uint8_t I2C_addr, uint8_t length, uint8_t *data, uint8_t &status, uint8_t &wr_status)
Write to selected DS28E17's I2C No Stop. Poll until I2C write complete and receive status info...
Definition: DS28E17.cpp:116
CmdResult EnableSleepMode()
The Enable Sleep Mode command puts the device into a low current mode. All 1-Wire communication is ig...
Definition: DS28E17.cpp:441
DS28E17(RandomAccessRomIterator &selector)
DS28E17 constructor.
Definition: DS28E17.cpp:57
Definition: DS28E17.h:73
Definition: DS2484.h:41
CmdResult I2C_WriteDataOnly(uint8_t length, uint8_t *data, uint8_t &status, uint8_t &wr_status)
Write to selected DS28E17's I2C with Data only. Poll until I2C write complete and receive status info...
Definition: DS28E17.cpp:165
CmdResult
Result of all operations.
Definition: DS28E17.h:68
Definition: DS28E17.h:77
Definition: DS28E17.h:70
static const uint8_t DS28E17_FAMILY_CODE
Definition: DS28E17.h:65
Definition: DS28E17.h:78
CmdResult ReadDeviceRevision(uint8_t &rev)
Read the Device Revision of DS28E17. The revision value should never be zero. The upper nibble is the...
Definition: DS28E17.cpp:466
CmdResult ReadConfigReg(uint8_t &config)
Read the Configuration Register of DS28E17.
Definition: DS28E17.cpp:408
CmdResult I2C_WriteDataWithStop(uint8_t I2C_addr, uint8_t length, uint8_t *data, uint8_t &status, uint8_t &wr_status)
Write to selected DS28E17's I2C with Stop. Poll until I2C write complete and receive status info...
Definition: DS28E17.cpp:65
Iterates though 1-Wire devices on the bus using random selection by ROM ID.
Definition: RomIterator.h:108