Mike Fruge / OneWire

Dependents:   Max32630_One_Wire_Interface

Committer:
j3
Date:
Tue Feb 09 03:30:22 2016 +0000
Revision:
5:ce108eeb878d
Parent:
3:644fc630f958
Child:
9:641516a3f0dc
added additional rom command functions to interface and moved initialization of members to init list vs constructor body.  Made other modifications suggested by Ian

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j3 3:644fc630f958 1 /******************************************************************//**
j3 3:644fc630f958 2 * @file owgpio.h
j3 3:644fc630f958 3 *
j3 3:644fc630f958 4 * @author Justin Jordan
j3 3:644fc630f958 5 *
j3 3:644fc630f958 6 * @version 0.0.0
j3 3:644fc630f958 7 *
j3 3:644fc630f958 8 * Started: 31JAN16
j3 3:644fc630f958 9 *
j3 3:644fc630f958 10 * Updated:
j3 3:644fc630f958 11 *
j3 3:644fc630f958 12 * @brief Header file for bit-banging a 1-wire master
j3 3:644fc630f958 13 ***********************************************************************
j3 3:644fc630f958 14 * Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved.
j3 3:644fc630f958 15 *
j3 3:644fc630f958 16 * Permission is hereby granted, free of charge, to any person obtaining a
j3 3:644fc630f958 17 * copy of this software and associated documentation files (the "Software"),
j3 3:644fc630f958 18 * to deal in the Software without restriction, including without limitation
j3 3:644fc630f958 19 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
j3 3:644fc630f958 20 * and/or sell copies of the Software, and to permit persons to whom the
j3 3:644fc630f958 21 * Software is furnished to do so, subject to the following conditions:
j3 3:644fc630f958 22 *
j3 3:644fc630f958 23 * The above copyright notice and this permission notice shall be included
j3 3:644fc630f958 24 * in all copies or substantial portions of the Software.
j3 3:644fc630f958 25 *
j3 3:644fc630f958 26 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
j3 3:644fc630f958 27 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
j3 3:644fc630f958 28 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
j3 3:644fc630f958 29 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
j3 3:644fc630f958 30 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
j3 3:644fc630f958 31 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
j3 3:644fc630f958 32 * OTHER DEALINGS IN THE SOFTWARE.
j3 3:644fc630f958 33 *
j3 3:644fc630f958 34 * Except as contained in this notice, the name of Maxim Integrated
j3 3:644fc630f958 35 * Products, Inc. shall not be used except as stated in the Maxim Integrated
j3 3:644fc630f958 36 * Products, Inc. Branding Policy.
j3 3:644fc630f958 37 *
j3 3:644fc630f958 38 * The mere transfer of this software does not imply any licenses
j3 3:644fc630f958 39 * of trade secrets, proprietary technology, copyrights, patents,
j3 3:644fc630f958 40 * trademarks, maskwork rights, or any other form of intellectual
j3 3:644fc630f958 41 * property whatsoever. Maxim Integrated Products, Inc. retains all
j3 3:644fc630f958 42 * ownership rights.
j3 3:644fc630f958 43 **********************************************************************/
j3 3:644fc630f958 44
j3 3:644fc630f958 45
j3 3:644fc630f958 46 #ifndef OWGPIO_H
j3 3:644fc630f958 47 #define OWGPIO_H
j3 3:644fc630f958 48
j3 3:644fc630f958 49
j3 3:644fc630f958 50 #include "mbed.h"
j3 3:644fc630f958 51 #include "OneWireInterface.h"
j3 5:ce108eeb878d 52 #include "OneWireMastersShared.h"
j3 3:644fc630f958 53
j3 3:644fc630f958 54
j3 3:644fc630f958 55 class OwGpio: public OneWireInterface
j3 3:644fc630f958 56 {
j3 3:644fc630f958 57 public:
j3 3:644fc630f958 58
j3 3:644fc630f958 59 /**********************************************************//**
j3 3:644fc630f958 60 * @brief
j3 3:644fc630f958 61 *
j3 3:644fc630f958 62 * @details
j3 3:644fc630f958 63 *
j3 3:644fc630f958 64 * On Entry:
j3 3:644fc630f958 65 *
j3 3:644fc630f958 66 * On Exit:
j3 3:644fc630f958 67 * @return
j3 3:644fc630f958 68 **************************************************************/
j3 5:ce108eeb878d 69 OwGpio(PinName ow_gpio, PinName ext_spu = NC);
j3 3:644fc630f958 70
j3 3:644fc630f958 71
j3 3:644fc630f958 72 /***** OW API ****************************************************/
j3 3:644fc630f958 73 virtual bool OWReset();
j3 3:644fc630f958 74
j3 3:644fc630f958 75 virtual void OWWriteBit(uint8_t sendbit);
j3 3:644fc630f958 76
j3 3:644fc630f958 77 virtual uint8_t OWReadBit();
j3 3:644fc630f958 78
j3 3:644fc630f958 79 virtual uint8_t OWTouchBit(uint8_t sendbit);
j3 3:644fc630f958 80
j3 3:644fc630f958 81 virtual bool OWWriteByte(uint8_t sendbyte);
j3 3:644fc630f958 82
j3 3:644fc630f958 83 virtual uint8_t OWReadByte(void);
j3 3:644fc630f958 84
j3 3:644fc630f958 85 virtual uint8_t OWTouchByte(uint8_t sendbyte);
j3 3:644fc630f958 86
j3 3:644fc630f958 87 virtual void OWBlock(uint8_t *tran_buf, uint8_t tran_len);
j3 5:ce108eeb878d 88
j3 5:ce108eeb878d 89 virtual void OWWriteBlock(const uint8_t *tran_buf, uint8_t tran_len);
j3 5:ce108eeb878d 90
j3 5:ce108eeb878d 91 virtual void OWReadBlock(uint8_t *recv_buf, uint8_t recv_len);
j3 3:644fc630f958 92
j3 3:644fc630f958 93 virtual bool OWFirst(void);
j3 3:644fc630f958 94
j3 3:644fc630f958 95 virtual bool OWNext(void);
j3 3:644fc630f958 96
j3 3:644fc630f958 97 virtual bool OWVerify(void);
j3 3:644fc630f958 98
j3 3:644fc630f958 99 virtual void OWTargetSetup(uint8_t family_code);
j3 3:644fc630f958 100
j3 3:644fc630f958 101 virtual void OWFamilySkipSetup(void);
j3 3:644fc630f958 102
j3 3:644fc630f958 103 virtual bool OWSearch(void);
j3 5:ce108eeb878d 104
j3 5:ce108eeb878d 105 virtual bool OWReadROM(void);
j3 5:ce108eeb878d 106
j3 5:ce108eeb878d 107 virtual bool OWSkipROM(void);
j3 5:ce108eeb878d 108
j3 5:ce108eeb878d 109 virtual bool OWMatchROM(void);
j3 5:ce108eeb878d 110
j3 5:ce108eeb878d 111 virtual bool OWOverdriveSkipROM(void);
j3 5:ce108eeb878d 112
j3 5:ce108eeb878d 113 virtual bool OWOverdriveMatchROM(void);
j3 5:ce108eeb878d 114
j3 5:ce108eeb878d 115 virtual bool OWResume(void);
j3 3:644fc630f958 116
j3 5:ce108eeb878d 117 virtual uint8_t OWSpeed(OW_SPEED new_speed);
j3 3:644fc630f958 118
j3 5:ce108eeb878d 119 virtual uint8_t OWLevel(OW_LEVEL new_level);
j3 3:644fc630f958 120
j3 3:644fc630f958 121 virtual bool OWWriteBytePower(uint8_t sendbyte);
j3 3:644fc630f958 122
j3 3:644fc630f958 123 virtual bool OWReadBitPower(uint8_t applyPowerResponse);
j3 3:644fc630f958 124
j3 5:ce108eeb878d 125 virtual const uint8_t (&OWgetROMnumber() const)[ROMnumberLen];
j3 3:644fc630f958 126
j3 3:644fc630f958 127 private:
j3 3:644fc630f958 128
j3 5:ce108eeb878d 129 DigitalInOut _ow_gpio;
j3 5:ce108eeb878d 130 DigitalOut _ext_spu;
j3 5:ce108eeb878d 131
j3 5:ce108eeb878d 132 uint8_t _rom_number[ROMnumberLen];
j3 3:644fc630f958 133 };
j3 3:644fc630f958 134
j3 3:644fc630f958 135 #endif /*OWGPIO_H*/