lcd lib
LcdDiscoF746NgTracer.cpp@0:ecd4f3e81bcf, 2017-01-05 (annotated)
- Committer:
- mmills
- Date:
- Thu Jan 05 18:40:01 2017 +0000
- Revision:
- 0:ecd4f3e81bcf
- Child:
- 1:5c55632552e0
Initial Revision.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mmills | 0:ecd4f3e81bcf | 1 | /* |
mmills | 0:ecd4f3e81bcf | 2 | License: |
mmills | 0:ecd4f3e81bcf | 3 | Copyright (C) 2017 GroveStreams LLC. |
mmills | 0:ecd4f3e81bcf | 4 | Licensed under the Apache License, Version 2.0 (the "License"); |
mmills | 0:ecd4f3e81bcf | 5 | you may not use this file except in compliance with the License. |
mmills | 0:ecd4f3e81bcf | 6 | You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0 |
mmills | 0:ecd4f3e81bcf | 7 | |
mmills | 0:ecd4f3e81bcf | 8 | Unless required by applicable law or agreed to in writing, software |
mmills | 0:ecd4f3e81bcf | 9 | distributed under the License is distributed on an "AS IS" BASIS, |
mmills | 0:ecd4f3e81bcf | 10 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
mmills | 0:ecd4f3e81bcf | 11 | See the License for the specific language governing permissions and |
mmills | 0:ecd4f3e81bcf | 12 | limitations under the License. |
mmills | 0:ecd4f3e81bcf | 13 | */ |
mmills | 0:ecd4f3e81bcf | 14 | |
mmills | 0:ecd4f3e81bcf | 15 | #include "LcdDiscoF746NgTracer.h" |
mmills | 0:ecd4f3e81bcf | 16 | |
mmills | 0:ecd4f3e81bcf | 17 | |
mmills | 0:ecd4f3e81bcf | 18 | LcdDiscoF746NgTracer::LcdDiscoF746NgTracer() |
mmills | 0:ecd4f3e81bcf | 19 | { |
mmills | 0:ecd4f3e81bcf | 20 | _line = 0; |
mmills | 0:ecd4f3e81bcf | 21 | _maxLines = 21; |
mmills | 0:ecd4f3e81bcf | 22 | _lcd.Clear(LCD_COLOR_GREEN); |
mmills | 0:ecd4f3e81bcf | 23 | _lcd.SetBackColor(LCD_COLOR_GREEN); |
mmills | 0:ecd4f3e81bcf | 24 | _lcd.SetTextColor(LCD_COLOR_WHITE); |
mmills | 0:ecd4f3e81bcf | 25 | _lcd.SetFont(&Font12); |
mmills | 0:ecd4f3e81bcf | 26 | } |
mmills | 0:ecd4f3e81bcf | 27 | |
mmills | 0:ecd4f3e81bcf | 28 | void LcdDiscoF746NgTracer::printf(const char* format, ...) |
mmills | 0:ecd4f3e81bcf | 29 | { |
mmills | 0:ecd4f3e81bcf | 30 | char sbuffer[512] = {0}; |
mmills | 0:ecd4f3e81bcf | 31 | |
mmills | 0:ecd4f3e81bcf | 32 | va_list args; |
mmills | 0:ecd4f3e81bcf | 33 | va_start(args, format); |
mmills | 0:ecd4f3e81bcf | 34 | vsprintf(sbuffer, format, args); |
mmills | 0:ecd4f3e81bcf | 35 | |
mmills | 0:ecd4f3e81bcf | 36 | this->println(sbuffer); |
mmills | 0:ecd4f3e81bcf | 37 | |
mmills | 0:ecd4f3e81bcf | 38 | va_end(args); |
mmills | 0:ecd4f3e81bcf | 39 | } |
mmills | 0:ecd4f3e81bcf | 40 | |
mmills | 0:ecd4f3e81bcf | 41 | void LcdDiscoF746NgTracer::println(const char* sbuffer) |
mmills | 0:ecd4f3e81bcf | 42 | { |
mmills | 0:ecd4f3e81bcf | 43 | |
mmills | 0:ecd4f3e81bcf | 44 | //LCD can only disply 60 chars at a time |
mmills | 0:ecd4f3e81bcf | 45 | int ichar = 0; |
mmills | 0:ecd4f3e81bcf | 46 | int charCount = strlen(sbuffer); |
mmills | 0:ecd4f3e81bcf | 47 | while (charCount>0) { |
mmills | 0:ecd4f3e81bcf | 48 | |
mmills | 0:ecd4f3e81bcf | 49 | char subbuff[61] = {0}; //Initialize buffer to nulls |
mmills | 0:ecd4f3e81bcf | 50 | if (charCount < 60) { |
mmills | 0:ecd4f3e81bcf | 51 | memcpy( subbuff, &sbuffer[ichar], charCount); |
mmills | 0:ecd4f3e81bcf | 52 | charCount=0; |
mmills | 0:ecd4f3e81bcf | 53 | } else { |
mmills | 0:ecd4f3e81bcf | 54 | memcpy( subbuff, &sbuffer[ichar], 60); |
mmills | 0:ecd4f3e81bcf | 55 | charCount -= 60; |
mmills | 0:ecd4f3e81bcf | 56 | } |
mmills | 0:ecd4f3e81bcf | 57 | |
mmills | 0:ecd4f3e81bcf | 58 | _lcd.DisplayStringAtLine(_line, (uint8_t *)subbuff); |
mmills | 0:ecd4f3e81bcf | 59 | |
mmills | 0:ecd4f3e81bcf | 60 | _line++; |
mmills | 0:ecd4f3e81bcf | 61 | if (_line == _maxLines) { |
mmills | 0:ecd4f3e81bcf | 62 | clear(); |
mmills | 0:ecd4f3e81bcf | 63 | } |
mmills | 0:ecd4f3e81bcf | 64 | |
mmills | 0:ecd4f3e81bcf | 65 | ichar+=60; |
mmills | 0:ecd4f3e81bcf | 66 | } |
mmills | 0:ecd4f3e81bcf | 67 | } |
mmills | 0:ecd4f3e81bcf | 68 | |
mmills | 0:ecd4f3e81bcf | 69 | void LcdDiscoF746NgTracer::clear() |
mmills | 0:ecd4f3e81bcf | 70 | { |
mmills | 0:ecd4f3e81bcf | 71 | _line = 0; |
mmills | 0:ecd4f3e81bcf | 72 | _lcd.Clear(LCD_COLOR_GREEN); |
mmills | 0:ecd4f3e81bcf | 73 | } |
mmills | 0:ecd4f3e81bcf | 74 | |
mmills | 0:ecd4f3e81bcf | 75 |