Implementation of 1-Wire with added Alarm Search Functionality
Dependents: Max32630_One_Wire_Interface
Diff: Masters/DS2480B/DS2480B.h
- Revision:
- 76:84e6c4994e29
- Parent:
- 75:8b627804927c
- Child:
- 84:708b7be59fb2
diff -r 8b627804927c -r 84e6c4994e29 Masters/DS2480B/DS2480B.h --- a/Masters/DS2480B/DS2480B.h Fri May 13 14:52:50 2016 -0500 +++ b/Masters/DS2480B/DS2480B.h Sat May 14 14:27:56 2016 -0500 @@ -40,104 +40,101 @@ namespace OneWire { - namespace Masters + class DS2480B : public OneWireMaster { - class DS2480B : public OneWireMaster + public: + enum Baud { - public: - enum Baud - { - Bps9600 = 0, - Bps19200 = 2, - Bps57600 = 4, - Bps115200 = 6 - }; + Bps9600 = 0, + Bps19200 = 2, + Bps57600 = 4, + Bps115200 = 6 + }; - /**********************************************************//** - * @brief DS2480B constructor - * - * @details allows user to use existing Serial object - * - * On Entry: - * @param[in] p_serial - pointer to existing serial object - * - * On Exit: - * @return - **************************************************************/ - DS2480B(mbed::Serial &p_serial); + /**********************************************************//** + * @brief DS2480B constructor + * + * @details allows user to use existing Serial object + * + * On Entry: + * @param[in] p_serial - pointer to existing serial object + * + * On Exit: + * @return + **************************************************************/ + DS2480B(mbed::Serial &p_serial); - /**********************************************************//** - * @brief DS2480B constructor - * - * @details Object instantiates a new serial object with no - * public access - * - * On Entry: - * @param[in] tx - tx pin of uart to be used - * @param[in] rx - rx pin of uart to be used - * @param[in] baud - baudrate for uart - * - * On Exit: - * @return - **************************************************************/ - DS2480B(PinName tx, PinName rx); + /**********************************************************//** + * @brief DS2480B constructor + * + * @details Object instantiates a new serial object with no + * public access + * + * On Entry: + * @param[in] tx - tx pin of uart to be used + * @param[in] rx - rx pin of uart to be used + * @param[in] baud - baudrate for uart + * + * On Exit: + * @return + **************************************************************/ + DS2480B(PinName tx, PinName rx); - /**********************************************************//** - * @brief DS2480B destructor - * - * @details deletes serial object if owner - * - * On Entry: - * - * On Exit: - * @return - **************************************************************/ - virtual ~DS2480B(); + /**********************************************************//** + * @brief DS2480B destructor + * + * @details deletes serial object if owner + * + * On Entry: + * + * On Exit: + * @return + **************************************************************/ + virtual ~DS2480B(); - OneWireMaster::CmdResult DS2480B_ChangeBaud(Baud newBaud); - - virtual OneWireMaster::CmdResult OWInitMaster(); - virtual OneWireMaster::CmdResult OWReset(); - virtual OneWireMaster::CmdResult OWTouchBitSetLevel(uint8_t & sendRecvBit, OWLevel afterLevel); - virtual OneWireMaster::CmdResult OWWriteByteSetLevel(uint8_t sendByte, OWLevel afterLevel); - virtual OneWireMaster::CmdResult OWReadByteSetLevel(uint8_t & recvByte, OWLevel afterLevel); - virtual OneWireMaster::CmdResult OWSetSpeed(OWSpeed newSpeed); - virtual OneWireMaster::CmdResult OWSetLevel(OWLevel newLevel); + OneWireMaster::CmdResult DS2480B_ChangeBaud(Baud newBaud); - private: - void rx_callback(void); + virtual OneWireMaster::CmdResult OWInitMaster(); + virtual OneWireMaster::CmdResult OWReset(); + virtual OneWireMaster::CmdResult OWTouchBitSetLevel(uint8_t & sendRecvBit, OWLevel afterLevel); + virtual OneWireMaster::CmdResult OWWriteByteSetLevel(uint8_t sendByte, OWLevel afterLevel); + virtual OneWireMaster::CmdResult OWReadByteSetLevel(uint8_t & recvByte, OWLevel afterLevel); + virtual OneWireMaster::CmdResult OWSetSpeed(OWSpeed newSpeed); + virtual OneWireMaster::CmdResult OWSetLevel(OWLevel newLevel); - OneWireMaster::CmdResult DS2480B_Detect(void); - OneWireMaster::CmdResult WriteCOM(uint32_t outlen, uint8_t *outbuf); - OneWireMaster::CmdResult ReadCOM(uint32_t inlen, uint8_t *inbuf); - void BreakCOM(void); - void FlushCOM(void); - void SetBaudCOM(uint8_t new_baud); - int32_t bitacc(uint32_t op, uint32_t state, uint32_t loc, uint8_t *buf); + private: + void rx_callback(void); - mbed::Serial *_p_serial; - bool _serial_owner; + OneWireMaster::CmdResult DS2480B_Detect(void); + OneWireMaster::CmdResult WriteCOM(uint32_t outlen, uint8_t *outbuf); + OneWireMaster::CmdResult ReadCOM(uint32_t inlen, uint8_t *inbuf); + void BreakCOM(void); + void FlushCOM(void); + void SetBaudCOM(uint8_t new_baud); + int32_t bitacc(uint32_t op, uint32_t state, uint32_t loc, uint8_t *buf); - // DS2480B state - OWLevel _ULevel; // 1-Wire level - Baud _UBaud; // baud rate - uint8_t _UMode; // command or data mode state - uint8_t _USpeed; // 1-Wire communication speed + mbed::Serial *_p_serial; + bool _serial_owner; - static const size_t MAX_RX_BUFFER_LEN = 256; - volatile struct ds2480b_circular_buff_s - { - uint8_t w_idx; - uint8_t r_idx; - uint8_t rx_bytes_available; - bool wrap_error; - uint8_t buff[MAX_RX_BUFFER_LEN]; - }rx_buffer; - }; - } + // DS2480B state + OWLevel _ULevel; // 1-Wire level + Baud _UBaud; // baud rate + uint8_t _UMode; // command or data mode state + uint8_t _USpeed; // 1-Wire communication speed + + static const size_t MAX_RX_BUFFER_LEN = 256; + volatile struct ds2480b_circular_buff_s + { + uint8_t w_idx; + uint8_t r_idx; + uint8_t rx_bytes_available; + bool wrap_error; + uint8_t buff[MAX_RX_BUFFER_LEN]; + }rx_buffer; + }; } #endif