OneWire Library for Arduino  version: 1.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator
OneWireMaster.h
Go to the documentation of this file.
1 /******************************************************************/
33 #ifndef OneWire_Masters_OneWireMaster
34 #define OneWire_Masters_OneWireMaster
35 
36 #include <stdint.h>
37 #include <stddef.h>
38 #include "Arduino.h"
39 
40 namespace OneWire
41 {
44  {
45  public:
47  enum OWSpeed
48  {
49  StandardSpeed = 0x00,
51  };
52 
54  enum OWLevel
55  {
56  NormalLevel = 0x00,
57  StrongLevel = 0x02
58  };
59 
62  {
63  WriteZero = 0,
65  };
66 
68  enum CmdResult
69  {
75  };
76 
78  virtual ~OneWireMaster() { }
79 
81  virtual CmdResult OWInitMaster() = 0;
82 
85  virtual CmdResult OWReset() = 0;
86 
91  virtual CmdResult OWTouchBitSetLevel(uint8_t & sendRecvBit, OWLevel afterLevel) = 0;
92 
96  virtual CmdResult OWWriteByteSetLevel(uint8_t sendByte, OWLevel afterLevel) = 0;
97 
101  virtual CmdResult OWReadByteSetLevel(uint8_t & recvByte, OWLevel afterLevel) = 0;
102 
106  virtual CmdResult OWWriteBlock(const uint8_t *sendBuf, uint8_t sendLen);
107 
111  virtual CmdResult OWReadBlock(uint8_t *recvBuf, uint8_t recvLen);
112 
114  virtual CmdResult OWSetSpeed(OWSpeed newSpeed) = 0;
115 
117  virtual CmdResult OWSetLevel(OWLevel newLevel) = 0;
118 
119  /**********************************************************/
134  virtual CmdResult OWTriplet(SearchDirection & searchDirection, uint8_t & sbr, uint8_t & tsb);
135 
139  CmdResult OWWriteBitSetLevel(uint8_t sendBit, OWLevel afterLevel) { return OWTouchBitSetLevel(sendBit, afterLevel); }
140 
144  CmdResult OWReadBitSetLevel(uint8_t & recvBit, OWLevel afterLevel) { recvBit = 0x01; return OWTouchBitSetLevel(recvBit, afterLevel); }
145 
146  // Alternate forms of read and write functions
147  CmdResult OWWriteBit(uint8_t sendBit) { return OWWriteBitSetLevel(sendBit, NormalLevel); }
148  CmdResult OWReadBit(uint8_t & recvBit) { return OWReadBitSetLevel(recvBit, NormalLevel); }
149  CmdResult OWWriteBitPower(uint8_t sendBit) { return OWWriteBitSetLevel(sendBit, StrongLevel); }
150  CmdResult OWReadBitPower(uint8_t & recvBit) { return OWReadBitSetLevel(recvBit, StrongLevel); }
151  CmdResult OWWriteByte(uint8_t sendByte) { return OWWriteByteSetLevel(sendByte, NormalLevel); }
152  CmdResult OWReadByte(uint8_t & recvByte) { return OWReadByteSetLevel(recvByte, NormalLevel); }
153  CmdResult OWWriteBytePower(uint8_t sendByte) { return OWWriteByteSetLevel(sendByte, StrongLevel); }
154  CmdResult OWReadBytePower(uint8_t & recvByte) { return OWReadByteSetLevel(recvByte, StrongLevel); }
155  };
156 }
157 
158 #endif
CmdResult OWWriteBit(uint8_t sendBit)
Definition: OneWireMaster.h:147
virtual CmdResult OWTouchBitSetLevel(uint8_t &sendRecvBit, OWLevel afterLevel)=0
SearchDirection
Search direction for the triplet operation.
Definition: OneWireMaster.h:61
Definition: OneWireMaster.h:74
virtual CmdResult OWReadByteSetLevel(uint8_t &recvByte, OWLevel afterLevel)=0
Definition: OneWireMaster.h:50
virtual CmdResult OWInitMaster()=0
Initialize a master for use.
virtual CmdResult OWReadBlock(uint8_t *recvBuf, uint8_t recvLen)
Definition: OneWireMaster.cpp:56
CmdResult OWReadBytePower(uint8_t &recvByte)
Definition: OneWireMaster.h:154
CmdResult OWWriteBitSetLevel(uint8_t sendBit, OWLevel afterLevel)
Definition: OneWireMaster.h:139
Definition: OneWireMaster.h:70
CmdResult OWWriteBitPower(uint8_t sendBit)
Definition: OneWireMaster.h:149
virtual CmdResult OWWriteByteSetLevel(uint8_t sendByte, OWLevel afterLevel)=0
OWSpeed
Speed of the 1-Wire bus.
Definition: OneWireMaster.h:47
Definition: OneWireMaster.h:56
Definition: OneWireMaster.h:57
CmdResult OWWriteBytePower(uint8_t sendByte)
Definition: OneWireMaster.h:153
CmdResult OWReadBit(uint8_t &recvBit)
Definition: OneWireMaster.h:148
CmdResult OWReadBitPower(uint8_t &recvBit)
Definition: OneWireMaster.h:150
CmdResult OWReadByte(uint8_t &recvByte)
Definition: OneWireMaster.h:152
Definition: OneWireMaster.h:73
CmdResult OWWriteByte(uint8_t sendByte)
Definition: OneWireMaster.h:151
Definition: DS2484.h:41
CmdResult OWReadBitSetLevel(uint8_t &recvBit, OWLevel afterLevel)
Definition: OneWireMaster.h:144
virtual CmdResult OWSetSpeed(OWSpeed newSpeed)=0
Set the 1-Wire bus communication speed.
Definition: OneWireMaster.h:63
virtual CmdResult OWSetLevel(OWLevel newLevel)=0
Set the 1-Wire bus level.
virtual CmdResult OWReset()=0
Base class for all 1-Wire Masters.
Definition: OneWireMaster.h:43
Definition: OneWireMaster.h:64
virtual CmdResult OWWriteBlock(const uint8_t *sendBuf, uint8_t sendLen)
Definition: OneWireMaster.cpp:40
virtual ~OneWireMaster()
Allow freeing through a base class pointer.
Definition: OneWireMaster.h:78
Definition: OneWireMaster.h:49
virtual CmdResult OWTriplet(SearchDirection &searchDirection, uint8_t &sbr, uint8_t &tsb)
1-Wire Triplet operation.
Definition: OneWireMaster.cpp:72
OWLevel
Level of the 1-Wire bus.
Definition: OneWireMaster.h:54
CmdResult
Result of all 1-Wire commands.
Definition: OneWireMaster.h:68