Subversion Repositories HomeAutomation

Rev

Rev 1031 | Rev 1187 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1031 Rev 1038
Line 72... Line 72...
72
    {
72
    {
73
    switch (rxMsg->Header.Command)
73
    switch (rxMsg->Header.Command)
74
    {
74
    {
75
        case CAN_MODULE_CMD_KS0108_LCD_CLEAR:
75
        case CAN_MODULE_CMD_KS0108_LCD_CLEAR:
76
          if (rxMsg->Length == 1) {
76
          if (rxMsg->Length == 1) {
77
            glcdSetColor((0x7f&rxMsg->Data[0])>>7);
77
            glcdSetColor((0x80&rxMsg->Data[0])>>7);
78
          }
78
          }
79
          glcdClear();
79
          glcdClear();
80
          rxMsg->Data[0] = glcdGetColor()<<7;
80
          rxMsg->Data[0] = glcdGetColor()<<7;
81
          StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
81
          StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
82
          rxMsg->Length = 1;
82
          rxMsg->Length = 1;
83
          while (StdCan_Put(rxMsg) != StdCan_Ret_OK);
83
          while (StdCan_Put(rxMsg) != StdCan_Ret_OK);
84
          break;
84
          break;
85
        case CAN_MODULE_CMD_KS0108_LCD_INVERT:
85
        case CAN_MODULE_CMD_KS0108_LCD_INVERT:
86
          if (rxMsg->Length == 1) {
86
          if (rxMsg->Length == 1) {
87
            if ((0x7f&rxMsg->Data[0])>>7 != glcdGetColor())
87
            if ((0x80&rxMsg->Data[0])>>7 != glcdGetColor())
88
                glcdInvert();
88
                glcdInvert();
89
          } else
89
          } else
90
            glcdInvert();
90
            glcdInvert();
91
          rxMsg->Data[0] = glcdGetColor()<<7;
91
          rxMsg->Data[0] = glcdGetColor()<<7;
92
          StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
92
          StdCan_Set_direction(rxMsg->Header, DIRECTIONFLAG_FROM_OWNER);
Line 94... Line 94...
94
          while (StdCan_Put(rxMsg) != StdCan_Ret_OK);
94
          while (StdCan_Put(rxMsg) != StdCan_Ret_OK);
95
          break;
95
          break;
96
        case CAN_MODULE_CMD_KS0108_LCD_CURSOR:
96
        case CAN_MODULE_CMD_KS0108_LCD_CURSOR:
97
          if (rxMsg->Length == 2) {
97
          if (rxMsg->Length == 2) {
98
            glcdSetXY((0x3f&rxMsg->Data[0])*6, rxMsg->Data[1]*8);
98
            glcdSetXY((0x3f&rxMsg->Data[0])*6, rxMsg->Data[1]*8);
99
            color = ((0x7f&rxMsg->Data[2])>>7);
99
            color = ((0x80&rxMsg->Data[2])>>7);
100
            Transparent = ((0xbf&rxMsg->Data[2])>>6);
100
            Transparent = ((0x40&rxMsg->Data[2])>>6);
101
          }
101
          }
102
          rxMsg->Data[0] = glcdGetColor()<<7;
102
          rxMsg->Data[0] = glcdGetColor()<<7;
103
          rxMsg->Data[0] = Transparent<<6;
103
          rxMsg->Data[0] = Transparent<<6;
104
          rxMsg->Data[0] |= (0x3f & (glcdGetX()/6));
104
          rxMsg->Data[0] |= (0x3f & (glcdGetX()/6));
105
          rxMsg->Data[1] |= ((glcdGetY()/8));
105
          rxMsg->Data[1] |= ((glcdGetY()/8));
Line 111... Line 111...
111
 
111
 
112
        case CAN_MODULE_CMD_KS0108_LCD_TEXTAT:
112
        case CAN_MODULE_CMD_KS0108_LCD_TEXTAT:
113
          glcdSetXY((0x3f&rxMsg->Data[0])*6, rxMsg->Data[1]*8);
113
          glcdSetXY((0x3f&rxMsg->Data[0])*6, rxMsg->Data[1]*8);
114
          for (n = 2; n < rxMsg->Length; n++)
114
          for (n = 2; n < rxMsg->Length; n++)
115
          {
115
          {
116
              if (((0xbf&rxMsg->Data[0])>>6)== TRANSPARENT)
116
              if (((0x40&rxMsg->Data[0])>>6)== TRANSPARENT)
117
                glcdWriteCharTransparent((char)rxMsg->Data[n], (0x7f&rxMsg->Data[0])>>7);
117
                glcdWriteCharTransparent((char)rxMsg->Data[n], (0x80&rxMsg->Data[0])>>7);
118
              else
118
              else
119
                glcdWriteChar((char)rxMsg->Data[n], (0x7f&rxMsg->Data[0])>>7);
119
                glcdWriteChar((char)rxMsg->Data[n], (0x80&rxMsg->Data[0])>>7);
120
          }
120
          }
121
        break;
121
        break;
122
 
122
 
123
        case CAN_MODULE_CMD_KS0108_LCD_TEXT:
123
        case CAN_MODULE_CMD_KS0108_LCD_TEXT:
124
        for (n = 0; n < rxMsg->Length; n++)
124
        for (n = 0; n < rxMsg->Length; n++)
Line 162... Line 162...
162
 
162
 
163
        while (StdCan_Put(&txMsg) != StdCan_Ret_OK);
163
        while (StdCan_Put(&txMsg) != StdCan_Ret_OK);
164
        break;
164
        break;
165
       
165
       
166
        case CAN_MODULE_CMD_KS0108_LCD_DRAWRECT:
166
        case CAN_MODULE_CMD_KS0108_LCD_DRAWRECT:
167
          if ((0xbf&rxMsg->Data[0])>>6)
167
          if ((0x40&rxMsg->Data[0])>>6)
168
            glcdFillRect(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], (0x7f&rxMsg->Data[0])>>7);
168
            glcdFillRect(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], (0x80&rxMsg->Data[0])>>7);
169
          else
169
          else
170
            if (rxMsg->Data[5] == 0)
170
            if (rxMsg->Data[5] == 0)
171
                glcdDrawRect(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], (0x7f&rxMsg->Data[0])>>7);
171
                glcdDrawRect(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], (0x80&rxMsg->Data[0])>>7);
172
            else
172
            else
173
                glcdDrawRoundRect(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], rxMsg->Data[5],(0x7f&rxMsg->Data[0])>>7);
173
                glcdDrawRoundRect(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], rxMsg->Data[5],(0x80&rxMsg->Data[0])>>7);
174
          break;
174
          break;
175
       
175
       
176
        case CAN_MODULE_CMD_KS0108_LCD_DRAWLINE:
176
        case CAN_MODULE_CMD_KS0108_LCD_DRAWLINE:
177
          glcdDrawLine(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], (0x7f&rxMsg->Data[0])>>7);
177
          glcdDrawLine(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], rxMsg->Data[4], (0x80&rxMsg->Data[0])>>7);
178
          break;
178
          break;
179
 
179
 
180
        case CAN_MODULE_CMD_KS0108_LCD_DRAWCIRCLE:
180
        case CAN_MODULE_CMD_KS0108_LCD_DRAWCIRCLE:
181
          glcdDrawCircle(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], (0x7f&rxMsg->Data[0])>>7);
181
          glcdDrawCircle(rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3], (0x80&rxMsg->Data[0])>>7);
182
          break;
182
          break;
183
   
183
   
184
        case CAN_MODULE_CMD_KS0108_LCD_INVERTRECT:
184
        case CAN_MODULE_CMD_KS0108_LCD_INVERTRECT:
185
          glcdInvertRect(rxMsg->Data[0], rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3]);
185
          glcdInvertRect(rxMsg->Data[0], rxMsg->Data[1], rxMsg->Data[2], rxMsg->Data[3]);
186
          break;
186
          break;