📄 memdev_autodev.c
字号:
*
* static data, shape of polygon
*
********************************************************************
*/
static const GUI_POINT _aNeedle[] = {
{ MAG * ( 0), MAG * ( 0 + 125)},
{ MAG * (-3), MAG * (-15 + 125)},
{ MAG * (-3), MAG * (-65 + 125)},
{ MAG * ( 3), MAG * (-65 + 125)},
{ MAG * ( 3), MAG * (-15 + 125)},
};
/*******************************************************************
*
* structure containing information for drawing routine
*/
typedef struct {
/* Information about what has to be displayed */
GUI_AUTODEV_INFO AutoDevInfo;
/* Polygon data */
GUI_POINT aPoints[7];
float Angle;
} PARAM;
/*******************************************************************
*
* static code
*
********************************************************************
*/
/*******************************************************************
*
* _GetAngle
This routine returns the value value to indicate. In a real
application, this value would somehow be measured.
*/
static float _GetAngle(int tDiff) {
if (tDiff < 15000) {
return 225 - 0.006 * tDiff ;
}
tDiff -= 15000;
if (tDiff < 7500) {
return 225 - 90 + 0.012 * tDiff ;
}
tDiff -= 7000;
return 225;
}
/*******************************************************************
*
* _Draw
*/
static void _Draw(void * p) {
PARAM * pParam = (PARAM *)p;
/* Fixed background */
if (pParam->AutoDevInfo.DrawFixed) {
GUI_ClearRect (60, 80 + bmScaleR140.YSize, 60 + bmScaleR140.XSize - 1, 180);
GUI_DrawBitmap(&bmScaleR140, 60, 80);
}
/* Moving needle */
GUI_SetColor(GUI_WHITE);
GUI_AA_FillPolygon(pParam->aPoints, countof(_aNeedle), MAG * 160, MAG * 220);
/* Fixed foreground */
if (pParam->AutoDevInfo.DrawFixed) {
GUI_SetTextMode(GUI_TM_TRANS);
GUI_SetColor(GUI_RED);
GUI_SetFont(&GUI_Font24B_ASCII);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -