-
Notifications
You must be signed in to change notification settings - Fork 0
/
MainViev.cpp
129 lines (99 loc) · 1.98 KB
/
MainViev.cpp
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <MainViev.h>
void format_onp_results(char* d){
if( d[7] == '+' ){
d[6] = 'E';
d[7] = d[9];
d[8] = d[10];
d[9] = 0;
d[10] = 0;
}else{
d[6] = 'e';
d[7] = d[9];
d[8] = d[10];
d[9] = 0;
d[10] = 0;
};
};
void mainViev::Draw( array<Cell>& r )
{
for( uint8_t i=0; i<2; i++ ){
for( uint8_t j=0; j<2; j++ ){
uint8_t addr = (column+j)*10 + (line+i);
double d;
uint8_t dts[20];
cells[addr].GetViev((char*)(dts));
if( dts[0] == '\'' ){
dts[8] = 0;
dts[0] = ' ';
for( uint8_t i=strlen((char*)(dts)); i<8; i++ ){
dts[i] = ' ';
};
}else{
if( !(dts[0] == 0) ){
cells[addr].GetResult(&d);
}else{
d = 0;
};
dtostre(d, (char*)(dts), 3, 1 );
format_onp_results( (char*)(dts) );
};
Text.GoTo( 2+(10*j), 2+(i*3) );
Text.SetSpaces(1);
Text.Write(dts);
};
};
Text.SetSpaces(1);
Text.GoTo(0,0);
Text.Write("\x88 \x81 \x80 ");
Text.GoToAbs(34, 0);
Text.Write( (char)(column+65) );
Text.GoToAbs(91, 0);
Text.Write( (char)(column+66) );
Text.GoTo(0,2);
Text.Write( (char)(line+49) );
Text.GoTo(0,5);
Text.Write( (char)(line+50) );
Text.GoTo(0,7);
Text.Write("\x89 OPCJE ");
// wykropkowanie poziome
for( uint8_t k=0; k<8; k+=3 ){
for( uint8_t i=6; i<126; i+=6 ){
Lcd_KS0108.SetPixel( i, 7+(8*k));
};
};
// wykropkowanie pionowe
for( uint8_t k=0; k<2; k++ ){
for( uint8_t i=0; i<60; i+=4 ){
Lcd_KS0108.SetPixel(6+(60*k), 3+i);
};
};
for( uint8_t i=0; i<60; i+=4 ){
Lcd_KS0108.SetPixel(126, 3+i);
};
Text.GoToAbs(0,0);
};
void mainViev::DecLine(void)
{
if( line > 0 )line--;
};
void mainViev::IncLine(void)
{
if( line < LINE_CNT_MAX )line++;
};
void mainViev::DecCol(void)
{
if( column > 0 )column--;
};
void mainViev::IncCol(void)
{
if( column < COLUMN_CNT_MAX )column++;
};
uint8_t mainViev::ActLine(void)
{
return line;
};
uint8_t mainViev::ActColumn(void)
{
return column;
};
mainViev MainViev;