zzz
Diff: iButton.h
- Revision:
- 14:2d0b5e0f0aed
- Parent:
- 13:016b84669050
diff -r 016b84669050 -r 2d0b5e0f0aed iButton.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/iButton.h Wed Aug 26 19:44:50 2020 +0000 @@ -0,0 +1,48 @@ +#ifndef I_BUTTON_H +#define I_BUTTON_H + +#include "mbed.h" +#include <string> +#include <vector> + +//typedef struct +//{ +// unsigned char family; +// unsigned char serial[6]; +// unsigned char crc; +// unsigned char valid; +//} ibuttonvalue; +class ibuttonvalue +{ +public: + unsigned char family; + std::vector<unsigned char> serial; + unsigned char crc; + bool valid; +}; + +class iButton +{ +public: + + iButton(PinName IO); + ~iButton(); + + void OneWireReset(void); + void OneWireOutByte(unsigned char data); + unsigned char OneWireReadByte(void); + void DetectiButton(void); + std::string GetData(void); + bool IsTaping(void); + +private: + DigitalInOut io; + ibuttonvalue detect; + unsigned char CrcTemp; + + unsigned char crc8(unsigned char crc, unsigned char data); + void ResetData(); + +}; + +#endif // I_BUTTON_H