Implementation of 1-Wire with added Alarm Search Functionality

Dependents:   Max32630_One_Wire_Interface

Committer:
j3
Date:
Mon Mar 21 21:41:36 2016 +0000
Revision:
22:686273e55cdc
Parent:
21:00c94aeb533e
Child:
54:08985bf69691
Changed argument to slave(s) constructor from OneWireInterface to OneWireMaster

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j3 19:6d4c039a2d8e 1 /******************************************************************//**
j3 19:6d4c039a2d8e 2 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
j3 19:6d4c039a2d8e 3 *
j3 19:6d4c039a2d8e 4 * Permission is hereby granted, free of charge, to any person obtaining a
j3 19:6d4c039a2d8e 5 * copy of this software and associated documentation files (the "Software"),
j3 19:6d4c039a2d8e 6 * to deal in the Software without restriction, including without limitation
j3 19:6d4c039a2d8e 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
j3 19:6d4c039a2d8e 8 * and/or sell copies of the Software, and to permit persons to whom the
j3 19:6d4c039a2d8e 9 * Software is furnished to do so, subject to the following conditions:
j3 19:6d4c039a2d8e 10 *
j3 19:6d4c039a2d8e 11 * The above copyright notice and this permission notice shall be included
j3 19:6d4c039a2d8e 12 * in all copies or substantial portions of the Software.
j3 19:6d4c039a2d8e 13 *
j3 19:6d4c039a2d8e 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
j3 19:6d4c039a2d8e 15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
j3 19:6d4c039a2d8e 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
j3 19:6d4c039a2d8e 17 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
j3 19:6d4c039a2d8e 18 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
j3 19:6d4c039a2d8e 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
j3 19:6d4c039a2d8e 20 * OTHER DEALINGS IN THE SOFTWARE.
j3 19:6d4c039a2d8e 21 *
j3 19:6d4c039a2d8e 22 * Except as contained in this notice, the name of Maxim Integrated
j3 19:6d4c039a2d8e 23 * Products, Inc. shall not be used except as stated in the Maxim Integrated
j3 19:6d4c039a2d8e 24 * Products, Inc. Branding Policy.
j3 19:6d4c039a2d8e 25 *
j3 19:6d4c039a2d8e 26 * The mere transfer of this software does not imply any licenses
j3 19:6d4c039a2d8e 27 * of trade secrets, proprietary technology, copyrights, patents,
j3 19:6d4c039a2d8e 28 * trademarks, maskwork rights, or any other form of intellectual
j3 19:6d4c039a2d8e 29 * property whatsoever. Maxim Integrated Products, Inc. retains all
j3 19:6d4c039a2d8e 30 * ownership rights.
j3 19:6d4c039a2d8e 31 **********************************************************************/
j3 19:6d4c039a2d8e 32
j3 19:6d4c039a2d8e 33
j3 19:6d4c039a2d8e 34 #ifndef DS2413_H
j3 19:6d4c039a2d8e 35 #define DS2413_H
j3 19:6d4c039a2d8e 36
j3 19:6d4c039a2d8e 37
j3 19:6d4c039a2d8e 38 #include "mbed.h"
IanBenzMaxim 21:00c94aeb533e 39 #include "OneWire_Masters/OneWireMasters.h"
j3 19:6d4c039a2d8e 40
j3 19:6d4c039a2d8e 41
j3 19:6d4c039a2d8e 42 class Ds2413
j3 19:6d4c039a2d8e 43 {
j3 19:6d4c039a2d8e 44
j3 19:6d4c039a2d8e 45 public:
j3 19:6d4c039a2d8e 46
j3 19:6d4c039a2d8e 47 enum DS2413_CMDS
j3 19:6d4c039a2d8e 48 {
j3 19:6d4c039a2d8e 49 PIO_ACCESS_READ = 0xF5,
j3 19:6d4c039a2d8e 50 PIO_ACCESS_WRITE = 0x5A
j3 19:6d4c039a2d8e 51 };
j3 19:6d4c039a2d8e 52
j3 19:6d4c039a2d8e 53 enum DS2413_PIO
j3 19:6d4c039a2d8e 54 {
j3 19:6d4c039a2d8e 55 PIOA,
j3 19:6d4c039a2d8e 56 PIOB,
j3 19:6d4c039a2d8e 57 PIOAB
j3 19:6d4c039a2d8e 58 };
j3 19:6d4c039a2d8e 59
j3 19:6d4c039a2d8e 60 enum CmdResult
j3 19:6d4c039a2d8e 61 {
j3 19:6d4c039a2d8e 62 Success,
j3 19:6d4c039a2d8e 63 CommsReadError,
j3 19:6d4c039a2d8e 64 CommsWriteError,
j3 19:6d4c039a2d8e 65 OpFailure
j3 19:6d4c039a2d8e 66 };
j3 19:6d4c039a2d8e 67
j3 19:6d4c039a2d8e 68 /**********************************************************//**
j3 19:6d4c039a2d8e 69 * @brief Ds2413 constructor
j3 19:6d4c039a2d8e 70 *
j3 19:6d4c039a2d8e 71 * @details
j3 19:6d4c039a2d8e 72 *
j3 19:6d4c039a2d8e 73 * On Entry:
j3 19:6d4c039a2d8e 74 * @param[in] owm - reference to 1-wire master
j3 19:6d4c039a2d8e 75 *
j3 19:6d4c039a2d8e 76 * On Exit:
j3 19:6d4c039a2d8e 77 *
j3 19:6d4c039a2d8e 78 * @return
j3 19:6d4c039a2d8e 79 **************************************************************/
j3 22:686273e55cdc 80 Ds2413(OneWireMaster &owm);
j3 19:6d4c039a2d8e 81
j3 19:6d4c039a2d8e 82
j3 19:6d4c039a2d8e 83 /**********************************************************//**
j3 19:6d4c039a2d8e 84 * @brief pio_access_read_chA()
j3 19:6d4c039a2d8e 85 *
j3 19:6d4c039a2d8e 86 * @details reads state of pio
j3 19:6d4c039a2d8e 87 *
j3 19:6d4c039a2d8e 88 * On Entry:
j3 19:6d4c039a2d8e 89 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 90 *
j3 19:6d4c039a2d8e 91 * On Exit:
j3 19:6d4c039a2d8e 92 * @param[out] val - lsb represents the state of the pio
j3 19:6d4c039a2d8e 93 *
j3 19:6d4c039a2d8e 94 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 95 **************************************************************/
j3 19:6d4c039a2d8e 96 CmdResult pio_access_read_chA(RomId &romId, uint8_t & val);
j3 19:6d4c039a2d8e 97
j3 19:6d4c039a2d8e 98
j3 19:6d4c039a2d8e 99 /**********************************************************//**
j3 19:6d4c039a2d8e 100 * @brief pio_access_read_chB()
j3 19:6d4c039a2d8e 101 *
j3 19:6d4c039a2d8e 102 * @details reads state of pio
j3 19:6d4c039a2d8e 103 *
j3 19:6d4c039a2d8e 104 * On Entry:
j3 19:6d4c039a2d8e 105 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 106 *
j3 19:6d4c039a2d8e 107 * On Exit:
j3 19:6d4c039a2d8e 108 * @param[out] val - lsb represents the state of the pio
j3 19:6d4c039a2d8e 109 *
j3 19:6d4c039a2d8e 110 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 111 **************************************************************/
j3 19:6d4c039a2d8e 112 CmdResult pio_access_read_chB(RomId &romId, uint8_t & val);
j3 19:6d4c039a2d8e 113
j3 19:6d4c039a2d8e 114
j3 19:6d4c039a2d8e 115 /**********************************************************//**
j3 19:6d4c039a2d8e 116 * @brief pio_acess_write_chA()
j3 19:6d4c039a2d8e 117 *
j3 19:6d4c039a2d8e 118 * @details writes to pio
j3 19:6d4c039a2d8e 119 *
j3 19:6d4c039a2d8e 120 * On Entry:
j3 19:6d4c039a2d8e 121 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 122 * @param[in] val - lsb sets state of pio
j3 19:6d4c039a2d8e 123 *
j3 19:6d4c039a2d8e 124 * On Exit:
j3 19:6d4c039a2d8e 125 *
j3 19:6d4c039a2d8e 126 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 127 **************************************************************/
j3 19:6d4c039a2d8e 128 CmdResult pio_access_write_chA(RomId &romId, uint8_t val);
j3 19:6d4c039a2d8e 129
j3 19:6d4c039a2d8e 130
j3 19:6d4c039a2d8e 131 /**********************************************************//**
j3 19:6d4c039a2d8e 132 * @brief pio_acess_write_chB()
j3 19:6d4c039a2d8e 133 *
j3 19:6d4c039a2d8e 134 * @details writes to pio
j3 19:6d4c039a2d8e 135 *
j3 19:6d4c039a2d8e 136 * On Entry:
j3 19:6d4c039a2d8e 137 * @param[in] romId - refernce to ROM # of switch
j3 19:6d4c039a2d8e 138 * @param[in] val - lsb sets state of pio
j3 19:6d4c039a2d8e 139 *
j3 19:6d4c039a2d8e 140 * On Exit:
j3 19:6d4c039a2d8e 141 *
j3 19:6d4c039a2d8e 142 * @return CmdResult - result of operation
j3 19:6d4c039a2d8e 143 **************************************************************/
j3 19:6d4c039a2d8e 144 CmdResult pio_access_write_chB(RomId &romId, uint8_t val);
j3 19:6d4c039a2d8e 145
j3 19:6d4c039a2d8e 146
j3 19:6d4c039a2d8e 147 private:
j3 19:6d4c039a2d8e 148
j3 19:6d4c039a2d8e 149 CmdResult pio_access_read(RomId &romId, uint8_t & val);
j3 19:6d4c039a2d8e 150
j3 19:6d4c039a2d8e 151 CmdResult pio_access_write(RomId &romId, uint8_t val);
j3 19:6d4c039a2d8e 152
j3 22:686273e55cdc 153 OneWireMaster &_owm;
j3 19:6d4c039a2d8e 154
j3 19:6d4c039a2d8e 155 };
j3 19:6d4c039a2d8e 156
j3 19:6d4c039a2d8e 157 #endif /*DS2413_H*/