Skip to content

Commit ed51616

Browse files
authored
Merge pull request adafruit#859 from makermelissa/master
Bug fixes and improvement. Added single body STL
2 parents e77f906 + 97dc3ae commit ed51616

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed
Binary file not shown.
Binary file not shown.

Stream_Deck_Message_Panel/MessagePanel/MessagePanel.ino

+15-5
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ void handleMessage(AdafruitIO_Data *data) {
5555
uint16_t strpos = 0;
5656
byte lineLengths[] = {0, 0, 0, 0};
5757
byte lineNum = 0;
58+
byte messageHeight = 0;
59+
byte lineHeight = 0;
5860
// Calculate line lengths
5961
boolean paramRead = false;
6062
boolean newLine = false;
@@ -83,17 +85,25 @@ void handleMessage(AdafruitIO_Data *data) {
8385

8486
if (plainText.charAt(strpos) != '\n') {
8587
lineLengths[lineNum] += textSize * BASE_CHAR_WIDTH;
88+
if (textSize * BASE_CHAR_HEIGHT > lineHeight) {
89+
lineHeight = textSize * BASE_CHAR_HEIGHT;
90+
}
8691
}
8792

8893
// We want to keep adding up the characters * textSize until we hit a newline character
8994
// or we reach the width of the message panel. Then we go down to the next line
9095
if (plainText.charAt(strpos) == '\n' || lineLengths[lineNum] >= matrix.width()) {
96+
messageHeight += lineHeight;
97+
lineHeight = 0;
9198
lineNum++;
9299
}
93100

94101
strpos++;
95102
}
96103

104+
// Add the last line
105+
messageHeight += lineHeight;
106+
97107
textSize = 1;
98108
lineNum = 0;
99109
for(uint16_t i=0; i<message.length(); i++) {
@@ -103,7 +113,7 @@ void handleMessage(AdafruitIO_Data *data) {
103113
} else if (message.charAt(i) == '}') {
104114
paramRead = false;
105115
int wheelPos = atoi(message.substring(colorStartIndex, i).c_str());
106-
if (wheelPos < 25) {
116+
if (wheelPos < 24) {
107117
color = Wheel(wheelPos);
108118
} else {
109119
color = matrix.Color333(7, 7, 7);
@@ -118,7 +128,7 @@ void handleMessage(AdafruitIO_Data *data) {
118128
if (paramRead) continue;
119129

120130
if (matrix.getCursorX() == 0 && matrix.getCursorY() == 0) {
121-
matrix.setCursor(floor((matrix.width() / 2) - (lineLengths[lineNum] / 2)), 0);
131+
matrix.setCursor(floor((matrix.width() / 2) - (lineLengths[lineNum] / 2)), matrix.height() / 2 - messageHeight / 2);
122132
} else if (newLine) {
123133
matrix.setCursor(floor((matrix.width() / 2) - (lineLengths[++lineNum] / 2)), matrix.getCursorY());
124134
newLine = false;
@@ -159,16 +169,16 @@ void loop() {
159169
io.run();
160170
}
161171

162-
// Input a value 0 to 24 to get a color value.
172+
// Input a value 0 to 23 to get a color value.
163173
// The colours are a transition r - g - b - back to r.
164174
uint16_t Wheel(byte WheelPos) {
165175
if(WheelPos < 8) {
166176
return matrix.Color333(7 - WheelPos, WheelPos, 0);
167177
} else if(WheelPos < 16) {
168178
WheelPos -= 8;
169-
return matrix.Color333(0, 7-WheelPos, WheelPos);
179+
return matrix.Color333(0, 7 - WheelPos, WheelPos);
170180
} else {
171181
WheelPos -= 16;
172-
return matrix.Color333(0, WheelPos, 7 - WheelPos);
182+
return matrix.Color333(WheelPos, 0, 7 - WheelPos);
173183
}
174184
}

0 commit comments

Comments
 (0)