forked from adafruit/Adafruit_GP8403
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path01_invalid_inputs.ino
More file actions
82 lines (65 loc) · 2.09 KB
/
Copy path01_invalid_inputs.ino
File metadata and controls
82 lines (65 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
* GP8403 Invalid Input Hardware Test
*
* Verifies that invalid raw values, voltages, and channels are rejected.
*/
#include <Adafruit_GP8403.h>
#include <math.h>
Adafruit_GP8403 gp8403;
void setup() {
Serial.begin(115200);
Serial.println(F("GP8403 invalid input hardware test"));
if (gp8403.saveToNVM(SDA, SCL)) {
halt(F("INVALID_INPUTS FAIL: save before begin"));
}
Serial.println(F("Save before begin correctly rejected"));
if (!gp8403.begin()) {
halt(F("INVALID_INPUTS FAIL: begin"));
}
Serial.println(F("Begin succeeded"));
if (gp8403.setRaw(0, 4096)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: raw value"));
}
Serial.println(F("Invalid raw value correctly rejected"));
if (gp8403.setVoltage(0, -0.1)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: negative voltage"));
}
Serial.println(F("Negative voltage correctly rejected"));
if (gp8403.setVoltage(1, 5.1)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: voltage above range"));
}
Serial.println(F("Voltage above range correctly rejected"));
if (gp8403.setVoltage(0, NAN)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: NAN voltage"));
}
Serial.println(F("NAN voltage correctly rejected"));
if (gp8403.setVoltage(1, INFINITY)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: infinite voltage"));
}
Serial.println(F("Infinite voltage correctly rejected"));
if (gp8403.setVoltage(2, 1.0)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: channel"));
}
Serial.println(F("Invalid channel correctly rejected"));
if (!gp8403.setVoltages(0.0, 0.0)) {
clearOutputsAndHalt(F("INVALID_INPUTS FAIL: set zero volts"));
}
Serial.println(F("Set zero volts succeeded"));
clearOutputsAndHalt(F("INVALID_INPUTS PASS"));
}
void loop() {}
void clearOutputsAndHalt(const __FlashStringHelper *message) {
Serial.println(message);
if (!gp8403.setVoltages(0.0, 0.0)) {
Serial.println(F("INVALID_INPUTS FAIL: reset outputs"));
}
while (true) {
delay(1000);
}
}
void halt(const __FlashStringHelper *message) {
Serial.println(message);
while (true) {
delay(1000);
}
}