-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcb.cpp
More file actions
99 lines (90 loc) · 2.78 KB
/
Copy pathcb.cpp
File metadata and controls
99 lines (90 loc) · 2.78 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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include "cb.h"
#include "ht16k33.h"
#include "Arduino.h"
// externals
extern HT16K33 htd;
extern const uint8_t resetPin1;
extern const uint8_t resetPin2;
extern ControlData_t ControlData;
// **********************************
// ** Command line callbacks **
// **********************************
void helpCallback(char *tokens) {
Serial.println("bright <x> : change brightness (0:off - 15:max)");
Serial.println("status : print current temp & pwm info");
Serial.println("reset : toggle motherboard reset");
}
void resetCallback(char *tokens) {
int val1 = digitalRead(resetPin1);
int val2 = digitalRead(resetPin2);
Serial.print("Pin Detect V1:");
Serial.print(val1, DEC);
Serial.print(" V2:");
Serial.println(val2, DEC);
Serial.println("asserting reset in 0.2 second");
delay(200);
// depending on how this is wired, pull down the active pin
if (val1 == HIGH && val2 == LOW) {
pinMode(resetPin1, OUTPUT);
digitalWrite(resetPin1, LOW);
}
if (val1 == LOW && val2 == HIGH) {
pinMode(resetPin2, OUTPUT);
digitalWrite(resetPin2, LOW);
}
if (val1 == LOW && val2 == LOW) {
Serial.println("could not detect active pin");
}
delay(1); // 1 millisecond
// stop output, set pins back to input
pinMode(resetPin1, INPUT);
pinMode(resetPin2, INPUT);
}
void brightCallback(char *tokens) {
char *brightStr = strtok(NULL, " ");
uint8_t bright = atoi(brightStr);
if (bright > 0 && bright <= 15) {
Serial.print("Brightness is now: ");
Serial.println(bright, DEC);
htd.displayOn();
htd.setBrightness(bright - 1);
}
if (bright == 0) {
htd.displayOff();
}
if (bright > 15) {
Serial.println("Please enter number from 0 to 15");
}
}
void statusCallback(char *tokens) {
Serial.println("LCMicro Status");
Serial.print("Temperature (C): ");
uint32_t wholePart = (uint32_t)ControlData.avgTemp;
uint32_t tensPart = (ControlData.avgTemp - wholePart) * 10.0;
Serial.print(wholePart, DEC);
Serial.print(".");
Serial.print(tensPart, DEC);
Serial.println("");
Serial.print("Fan RPM: ");
Serial.print(ControlData.fanRPM, DEC);
Serial.println("");
Serial.print("Mode: ");
switch(ControlData.mode)
{
case MODE_FIXED_RPM:
Serial.print("Fixed RPM @ ");
Serial.print(ControlData.fanRPMTarget);
break;
case MODE_MIN_MAX:
Serial.print("Min/Max Temperature Mode");
Serial.print(" Min = ");
Serial.print("0");
Serial.print(" Max = ");
Serial.print("50");
break;
default:
Serial.print("Invalid Mode Set");
break;
}
Serial.println("");
}