Implementation of 1-Wire with added Alarm Search Functionality

Dependents:   Max32630_One_Wire_Interface

Committer:
IanBenzMaxim
Date:
Mon Mar 21 14:12:28 2016 -0500
Revision:
21:00c94aeb533e
Parent:
19:6d4c039a2d8e
Child:
22:686273e55cdc
Added class for DS2465. Added a ReadBytePower operation to OneWireMaster since this is required by the authenticators including the DS28E15. Tweaked member data of OneWireMaster. Added path to header file includes to reduce compiler setup required.

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 19:6d4c039a2d8e 80 Ds2413(OneWireInterface &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 19:6d4c039a2d8e 153 OneWireInterface &_owm;
j3 19:6d4c039a2d8e 154
j3 19:6d4c039a2d8e 155 };
j3 19:6d4c039a2d8e 156
j3 19:6d4c039a2d8e 157 #endif /*DS2413_H*/