Implementation of 1-Wire with added Alarm Search Functionality

Dependents:   Max32630_One_Wire_Interface

Committer:
j3
Date:
Tue Feb 09 03:30:22 2016 +0000
Revision:
5:ce108eeb878d
Parent:
3:644fc630f958
Child:
13:d1bdb03703de
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 ds2480b.cpp
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 Source file for DS2480B Async Serial to 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 #include "ds2480b.h"
j3 3:644fc630f958 47
j3 3:644fc630f958 48
j3 3:644fc630f958 49 //*********************************************************************
j3 3:644fc630f958 50 Ds2480b::Ds2480b(Serial *p_serial)
j3 3:644fc630f958 51 {
j3 3:644fc630f958 52 _p_serial = p_serial;
j3 3:644fc630f958 53 _serial_owner = false;
j3 3:644fc630f958 54 }
j3 3:644fc630f958 55
j3 3:644fc630f958 56
j3 3:644fc630f958 57 //*********************************************************************
j3 3:644fc630f958 58 Ds2480b::Ds2480b(PinName tx, PinName rx, uint32_t baud)
j3 3:644fc630f958 59 {
j3 3:644fc630f958 60 _p_serial = new Serial(tx, rx);
j3 3:644fc630f958 61 _p_serial->baud(baud);
j3 3:644fc630f958 62 _serial_owner = true;
j3 3:644fc630f958 63 }
j3 3:644fc630f958 64
j3 3:644fc630f958 65
j3 3:644fc630f958 66 //*********************************************************************
j3 3:644fc630f958 67 Ds2480b::~Ds2480b()
j3 3:644fc630f958 68 {
j3 3:644fc630f958 69 if(_serial_owner)
j3 3:644fc630f958 70 {
j3 3:644fc630f958 71 delete _p_serial;
j3 3:644fc630f958 72 }
j3 3:644fc630f958 73 }
j3 3:644fc630f958 74
j3 3:644fc630f958 75
j3 3:644fc630f958 76 //*********************************************************************
j3 3:644fc630f958 77 bool Ds2480b::OWReset()
j3 3:644fc630f958 78 {
j3 3:644fc630f958 79 bool rtn_val;
j3 3:644fc630f958 80
j3 3:644fc630f958 81 //TODO
j3 3:644fc630f958 82
j3 3:644fc630f958 83 return rtn_val;
j3 3:644fc630f958 84 }
j3 3:644fc630f958 85
j3 3:644fc630f958 86
j3 3:644fc630f958 87 //*********************************************************************
j3 3:644fc630f958 88 void Ds2480b::OWWriteBit(uint8_t sendbit)
j3 3:644fc630f958 89 {
j3 3:644fc630f958 90 //TODO
j3 3:644fc630f958 91 }
j3 3:644fc630f958 92
j3 3:644fc630f958 93
j3 3:644fc630f958 94 //*********************************************************************
j3 3:644fc630f958 95 uint8_t Ds2480b::OWReadBit()
j3 3:644fc630f958 96 {
j3 3:644fc630f958 97 uint8_t rtn_val;
j3 3:644fc630f958 98
j3 3:644fc630f958 99 //TODO
j3 3:644fc630f958 100
j3 3:644fc630f958 101 return(rtn_val);
j3 3:644fc630f958 102 }
j3 3:644fc630f958 103
j3 3:644fc630f958 104
j3 3:644fc630f958 105 //*********************************************************************
j3 3:644fc630f958 106 uint8_t Ds2480b::OWTouchBit(uint8_t sendbit)
j3 3:644fc630f958 107 {
j3 3:644fc630f958 108 uint8_t rtn_val;
j3 3:644fc630f958 109
j3 3:644fc630f958 110 //TODO
j3 3:644fc630f958 111
j3 3:644fc630f958 112 return(rtn_val);
j3 3:644fc630f958 113 }
j3 3:644fc630f958 114
j3 3:644fc630f958 115
j3 3:644fc630f958 116
j3 3:644fc630f958 117 //*********************************************************************
j3 3:644fc630f958 118 bool Ds2480b::OWWriteByte(uint8_t sendbyte)
j3 3:644fc630f958 119 {
j3 3:644fc630f958 120 bool rtn_val;
j3 3:644fc630f958 121
j3 3:644fc630f958 122 //TODO
j3 3:644fc630f958 123
j3 3:644fc630f958 124 return rtn_val;
j3 3:644fc630f958 125 }
j3 3:644fc630f958 126
j3 3:644fc630f958 127
j3 3:644fc630f958 128 //*********************************************************************
j3 3:644fc630f958 129 uint8_t Ds2480b::OWReadByte(void)
j3 3:644fc630f958 130 {
j3 3:644fc630f958 131 uint8_t rtn_val;
j3 3:644fc630f958 132
j3 3:644fc630f958 133 //TODO
j3 3:644fc630f958 134
j3 3:644fc630f958 135 return(rtn_val);
j3 3:644fc630f958 136 }
j3 3:644fc630f958 137
j3 3:644fc630f958 138
j3 3:644fc630f958 139 //*********************************************************************
j3 3:644fc630f958 140 uint8_t Ds2480b::OWTouchByte(uint8_t sendbyte)
j3 3:644fc630f958 141 {
j3 3:644fc630f958 142 uint8_t rtn_val;
j3 3:644fc630f958 143
j3 3:644fc630f958 144 //TODO
j3 3:644fc630f958 145
j3 3:644fc630f958 146 return(rtn_val);
j3 3:644fc630f958 147 }
j3 3:644fc630f958 148
j3 3:644fc630f958 149
j3 3:644fc630f958 150 //*********************************************************************
j3 3:644fc630f958 151 void Ds2480b::OWBlock(uint8_t *tran_buf, uint8_t tran_len)
j3 3:644fc630f958 152 {
j3 3:644fc630f958 153 //TODO
j3 3:644fc630f958 154 }
j3 3:644fc630f958 155
j3 3:644fc630f958 156
j3 3:644fc630f958 157 //*********************************************************************
j3 5:ce108eeb878d 158 void Ds2480b::OWWriteBlock(const uint8_t *tran_buf, uint8_t tran_len)
j3 5:ce108eeb878d 159 {
j3 5:ce108eeb878d 160 //TODO
j3 5:ce108eeb878d 161 }
j3 5:ce108eeb878d 162
j3 5:ce108eeb878d 163
j3 5:ce108eeb878d 164 //*********************************************************************
j3 5:ce108eeb878d 165 void Ds2480b::OWReadBlock(uint8_t *recv_buf, uint8_t recv_len)
j3 5:ce108eeb878d 166 {
j3 5:ce108eeb878d 167 //TODO
j3 5:ce108eeb878d 168 }
j3 5:ce108eeb878d 169
j3 5:ce108eeb878d 170
j3 5:ce108eeb878d 171 //*********************************************************************
j3 3:644fc630f958 172 bool Ds2480b::OWFirst(void)
j3 3:644fc630f958 173 {
j3 3:644fc630f958 174 bool rtn_val;
j3 3:644fc630f958 175
j3 3:644fc630f958 176 //TODO
j3 3:644fc630f958 177
j3 3:644fc630f958 178 return rtn_val;
j3 3:644fc630f958 179 }
j3 3:644fc630f958 180
j3 3:644fc630f958 181
j3 3:644fc630f958 182 //*********************************************************************
j3 3:644fc630f958 183 bool Ds2480b::OWNext(void)
j3 3:644fc630f958 184 {
j3 3:644fc630f958 185 bool rtn_val;
j3 3:644fc630f958 186
j3 3:644fc630f958 187 //TODO
j3 3:644fc630f958 188
j3 3:644fc630f958 189 return rtn_val;
j3 3:644fc630f958 190 }
j3 3:644fc630f958 191
j3 3:644fc630f958 192
j3 3:644fc630f958 193 //*********************************************************************
j3 3:644fc630f958 194 bool Ds2480b::OWVerify(void)
j3 3:644fc630f958 195 {
j3 3:644fc630f958 196 bool rtn_val;
j3 3:644fc630f958 197
j3 3:644fc630f958 198 //TODO
j3 3:644fc630f958 199
j3 3:644fc630f958 200 return rtn_val;
j3 3:644fc630f958 201 }
j3 3:644fc630f958 202
j3 3:644fc630f958 203
j3 3:644fc630f958 204 //*********************************************************************
j3 3:644fc630f958 205 void Ds2480b::OWTargetSetup(uint8_t family_code)
j3 3:644fc630f958 206 {
j3 3:644fc630f958 207 //TODO
j3 3:644fc630f958 208 }
j3 3:644fc630f958 209
j3 3:644fc630f958 210
j3 3:644fc630f958 211 //*********************************************************************
j3 3:644fc630f958 212 void Ds2480b::OWFamilySkipSetup(void)
j3 3:644fc630f958 213 {
j3 3:644fc630f958 214 //TODO
j3 3:644fc630f958 215 }
j3 3:644fc630f958 216
j3 3:644fc630f958 217
j3 3:644fc630f958 218 //*********************************************************************
j3 3:644fc630f958 219 bool Ds2480b::OWSearch(void)
j3 3:644fc630f958 220 {
j3 3:644fc630f958 221 bool rtn_val;
j3 3:644fc630f958 222
j3 3:644fc630f958 223 //TODO
j3 3:644fc630f958 224
j3 3:644fc630f958 225 return rtn_val;
j3 3:644fc630f958 226 }
j3 3:644fc630f958 227
j3 3:644fc630f958 228
j3 3:644fc630f958 229 //*********************************************************************
j3 5:ce108eeb878d 230 bool Ds2480b::OWReadROM(void)
j3 5:ce108eeb878d 231 {
j3 5:ce108eeb878d 232 bool rtn_val;
j3 5:ce108eeb878d 233
j3 5:ce108eeb878d 234 //TODO
j3 5:ce108eeb878d 235
j3 5:ce108eeb878d 236 return rtn_val;
j3 5:ce108eeb878d 237 }
j3 5:ce108eeb878d 238
j3 5:ce108eeb878d 239
j3 5:ce108eeb878d 240 //*********************************************************************
j3 5:ce108eeb878d 241 bool Ds2480b::OWSkipROM(void)
j3 5:ce108eeb878d 242 {
j3 5:ce108eeb878d 243 bool rtn_val;
j3 5:ce108eeb878d 244
j3 5:ce108eeb878d 245 //TODO
j3 5:ce108eeb878d 246
j3 5:ce108eeb878d 247 return rtn_val;
j3 5:ce108eeb878d 248 }
j3 5:ce108eeb878d 249
j3 5:ce108eeb878d 250
j3 5:ce108eeb878d 251 //*********************************************************************
j3 5:ce108eeb878d 252 bool Ds2480b::OWMatchROM(void)
j3 5:ce108eeb878d 253 {
j3 5:ce108eeb878d 254 bool rtn_val;
j3 5:ce108eeb878d 255
j3 5:ce108eeb878d 256 //TODO
j3 5:ce108eeb878d 257
j3 5:ce108eeb878d 258 return rtn_val;
j3 5:ce108eeb878d 259 }
j3 5:ce108eeb878d 260
j3 5:ce108eeb878d 261
j3 5:ce108eeb878d 262 //*********************************************************************
j3 5:ce108eeb878d 263 bool Ds2480b::OWOverdriveSkipROM(void)
j3 5:ce108eeb878d 264 {
j3 5:ce108eeb878d 265 bool rtn_val;
j3 5:ce108eeb878d 266
j3 5:ce108eeb878d 267 //TODO
j3 5:ce108eeb878d 268
j3 5:ce108eeb878d 269 return rtn_val;
j3 5:ce108eeb878d 270 }
j3 5:ce108eeb878d 271
j3 5:ce108eeb878d 272
j3 5:ce108eeb878d 273 //*********************************************************************
j3 5:ce108eeb878d 274 bool Ds2480b::OWOverdriveMatchROM(void)
j3 5:ce108eeb878d 275 {
j3 5:ce108eeb878d 276 bool rtn_val;
j3 5:ce108eeb878d 277
j3 5:ce108eeb878d 278 //TODO
j3 5:ce108eeb878d 279
j3 5:ce108eeb878d 280 return rtn_val;
j3 5:ce108eeb878d 281 }
j3 5:ce108eeb878d 282
j3 5:ce108eeb878d 283
j3 5:ce108eeb878d 284 //*********************************************************************
j3 5:ce108eeb878d 285 bool Ds2480b::OWResume(void)
j3 5:ce108eeb878d 286 {
j3 5:ce108eeb878d 287 bool rtn_val;
j3 5:ce108eeb878d 288
j3 5:ce108eeb878d 289 //TODO
j3 5:ce108eeb878d 290
j3 5:ce108eeb878d 291 return rtn_val;
j3 5:ce108eeb878d 292 }
j3 5:ce108eeb878d 293
j3 5:ce108eeb878d 294
j3 5:ce108eeb878d 295 //*********************************************************************
j3 5:ce108eeb878d 296 uint8_t Ds2480b::OWSpeed(OW_SPEED new_speed)
j3 3:644fc630f958 297 {
j3 3:644fc630f958 298 uint8_t rtn_val;
j3 3:644fc630f958 299
j3 3:644fc630f958 300 //TODO
j3 3:644fc630f958 301
j3 3:644fc630f958 302 return(rtn_val);
j3 3:644fc630f958 303 }
j3 3:644fc630f958 304
j3 3:644fc630f958 305
j3 3:644fc630f958 306 //*********************************************************************
j3 5:ce108eeb878d 307 uint8_t Ds2480b::OWLevel(OW_LEVEL new_level)
j3 3:644fc630f958 308 {
j3 3:644fc630f958 309 uint8_t rtn_val;
j3 3:644fc630f958 310
j3 3:644fc630f958 311 //TODO
j3 3:644fc630f958 312
j3 3:644fc630f958 313 return(rtn_val);
j3 3:644fc630f958 314 }
j3 3:644fc630f958 315
j3 3:644fc630f958 316
j3 3:644fc630f958 317 //*********************************************************************
j3 3:644fc630f958 318 bool Ds2480b::OWWriteBytePower(uint8_t sendbyte)
j3 3:644fc630f958 319 {
j3 3:644fc630f958 320 bool rtn_val;
j3 3:644fc630f958 321
j3 3:644fc630f958 322 //TODO
j3 3:644fc630f958 323
j3 3:644fc630f958 324 return rtn_val;
j3 3:644fc630f958 325 }
j3 3:644fc630f958 326
j3 3:644fc630f958 327
j3 3:644fc630f958 328 //*********************************************************************
j3 3:644fc630f958 329 bool Ds2480b::OWReadBitPower(uint8_t applyPowerResponse)
j3 3:644fc630f958 330 {
j3 3:644fc630f958 331 bool rtn_val;
j3 3:644fc630f958 332
j3 3:644fc630f958 333 //TODO
j3 3:644fc630f958 334
j3 3:644fc630f958 335 return rtn_val;
j3 3:644fc630f958 336 }
j3 3:644fc630f958 337
j3 3:644fc630f958 338
j3 3:644fc630f958 339 //*********************************************************************
j3 5:ce108eeb878d 340 const uint8_t (&Ds2480b::OWgetROMnumber() const)[ROMnumberLen]
j3 3:644fc630f958 341 {
j3 5:ce108eeb878d 342 return _rom_number;
j3 3:644fc630f958 343 }