Skip to content

Commit d710ca5

Browse files
committed
Refactoring hardware bus manager support
1 parent 4d6cfe1 commit d710ca5

File tree

11 files changed

+100
-475
lines changed

11 files changed

+100
-475
lines changed

README.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,21 @@ based software and DS2482 based hardware bus manager, and device
55
driver for DS18B20.
66

77
The examples directory contains device search, bus scanner,
8-
thermometer alarm search, and example sketches for DS18B20, DS1990A
9-
and DS2482.
8+
thermometer alarm search, and example sketches for DS18B20 and
9+
DS1990A.
1010

11-
Version: 1.6
11+
Version: 1.7
1212

1313
## Classes
1414

1515
* [Abstract One-Wire Bus Manager and Device Interface, OWI](./src/OWI.h)
1616
* [Software One-Wire Bus Manager, GPIO, Software::OWI](./src/Software/OWI.h)
17-
* [Hardware One-Wire Bus Manager, DS2482, Hardware::OWI](./src/Hardware/OWI.h)
1817
* [Programmable Resolution 1-Wire Digital Thermometer, DS18B20](./src/Driver/DS18B20.h)
1918

2019
## Example Sketches
2120

2221
* [DS18B20](./examples/DS18B20)
2322
* [DS1990A](./examples/DS1990A)
24-
* [DS2482](./examples/DS2482)
2523
* [Alarm](./examples/Alarm)
2624
* [Scanner](./examples/Scanner)
2725
* [Search](./examples/Search)

examples/Alarm/Alarm.ino

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,17 @@
99
Software::OWI<BOARD::D7> owi;
1010

1111
#else
12+
#include "TWI.h"
1213
#include "Hardware/OWI.h"
1314
// Configure: Software/Hardware TWI Bus Manager
1415
// #define USE_SOFTWARE_TWI
1516
#if defined(USE_SOFTWARE_TWI)
1617
#include "Software/TWI.h"
18+
#if defined(SAM)
19+
Software::TWI<BOARD::D8,BOARD::D9> twi;
20+
#else
1721
Software::TWI<BOARD::D18,BOARD::D19> twi;
22+
#endif
1823
#else
1924
#include "Hardware/TWI.h"
2025
Hardware::TWI twi;
@@ -24,6 +29,16 @@ Hardware::OWI owi(twi);
2429

2530
DS18B20 sensor(owi);
2631

32+
#define ASSERT(expr) \
33+
do { \
34+
if (!(expr)) { \
35+
Serial.print(__LINE__); \
36+
Serial.println(F(":assert:" #expr)); \
37+
Serial.flush(); \
38+
exit(0); \
39+
} \
40+
} while (0)
41+
2742
void setup()
2843
{
2944
Serial.begin(57600);
@@ -38,7 +53,7 @@ void setup()
3853
if (last == owi.ERROR) break;
3954
sensor.resolution(10);
4055
sensor.set_trigger(20, 25);
41-
sensor.write_scratchpad();
56+
ASSERT(sensor.write_scratchpad());
4257
} while (last != owi.LAST);
4358
}
4459

@@ -50,16 +65,14 @@ void loop()
5065

5166
int8_t last = owi.FIRST;
5267
uint8_t* rom = sensor.rom();
53-
bool triggered = false;
5468
static uint16_t timestamp = 0;
5569
uint8_t id = 0;
5670
if (!sensor.convert_request(true)) return;
5771
delay(sensor.conversion_time());
5872
do {
5973
last = owi.alarm_search(rom, last);
6074
if (last == owi.ERROR) break;
61-
triggered = true;
62-
sensor.read_scratchpad(false);
75+
ASSERT(sensor.read_scratchpad(false));
6376
Serial.print(timestamp);
6477
Serial.print('.');
6578
Serial.print(id++);

examples/DS18B20/DS18B20.ino

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,17 @@
99
Software::OWI<BOARD::D7> owi;
1010

1111
#else
12-
#include "Hardware/OWI.h"
1312
// Configure: Software/Hardware TWI Bus Manager
1413
// #define USE_SOFTWARE_TWI
14+
#include "TWI.h"
15+
#include "Hardware/OWI.h"
1516
#if defined(USE_SOFTWARE_TWI)
1617
#include "Software/TWI.h"
18+
#if defined(SAM)
19+
Software::TWI<BOARD::D8,BOARD::D9> twi;
20+
#else
1721
Software::TWI<BOARD::D18,BOARD::D19> twi;
22+
#endif
1823
#else
1924
#include "Hardware/TWI.h"
2025
Hardware::TWI twi;
@@ -24,6 +29,16 @@ Hardware::OWI owi(twi);
2429

2530
DS18B20 sensor(owi);
2631

32+
#define ASSERT(expr) \
33+
do { \
34+
if (!(expr)) { \
35+
Serial.print(__LINE__); \
36+
Serial.println(F(":assert:" #expr)); \
37+
Serial.flush(); \
38+
exit(0); \
39+
} \
40+
} while (0)
41+
2742
void setup()
2843
{
2944
Serial.begin(57600);
@@ -47,7 +62,7 @@ void loop()
4762
if (last == owi.ERROR) break;
4863

4964
// Read the scratchpad with current temperature, tiggers, etc
50-
sensor.read_scratchpad(false);
65+
ASSERT(sensor.read_scratchpad(false));
5166
int8_t low, high;
5267
sensor.get_trigger(low, high);
5368

examples/DS2482/DS2482.ino

Lines changed: 0 additions & 122 deletions
This file was deleted.

examples/Scanner/Scanner.ino

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@
88
Software::OWI<BOARD::D7> owi;
99

1010
#else
11-
#include "Hardware/OWI.h"
1211
// Configure: Software/Hardware TWI Bus Manager
1312
// #define USE_SOFTWARE_TWI
13+
#include "TWI.h"
14+
#include "Hardware/OWI.h"
1415
#if defined(USE_SOFTWARE_TWI)
1516
#include "Software/TWI.h"
17+
#if defined(SAM)
18+
Software::TWI<BOARD::D8,BOARD::D9> twi;
19+
#else
1620
Software::TWI<BOARD::D18,BOARD::D19> twi;
21+
#endif
1722
#else
1823
#include "Hardware/TWI.h"
1924
Hardware::TWI twi;

examples/Search/Search.ino

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@
88
Software::OWI<BOARD::D7> owi;
99

1010
#else
11-
#include "Hardware/OWI.h"
1211
// Configure: Software/Hardware TWI Bus Manager
1312
// #define USE_SOFTWARE_TWI
13+
#include "TWI.h"
14+
#include "Hardware/OWI.h"
1415
#if defined(USE_SOFTWARE_TWI)
1516
#include "Software/TWI.h"
17+
#if defined(SAM)
18+
Software::TWI<BOARD::D8,BOARD::D9> twi;
19+
#else
1620
Software::TWI<BOARD::D18,BOARD::D19> twi;
21+
#endif
1722
#else
1823
#include "Hardware/TWI.h"
1924
Hardware::TWI twi;

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=Arduino-OWI
2-
version=1.6
2+
version=1.7
33
author=Mikael Patel
44
maintainer=Mikael Patel <[email protected]>
55
sentence=One-Wire Interface (OWI) library for Arduino.

mainpage.dox

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The OWI library has been developed to support the implementation of
55
based Software::OWI bus manager, DS2482 based Hardware::OWI bus
66
manager, and device driver for DS18B20.
77

8-
Version: 1.6
8+
Version: 1.7
99
*/
1010

1111
/** @page License

0 commit comments

Comments
 (0)