📄 c_display.iom
字号:
//
// Programmer
//
// Date init 14.12.2004
//
// Reviser $Author:: Dktochpe $
//
// Revision date $Date:: 17-02-06 8:45 $
//
// Filename $Workfile:: c_display.iom $
//
// Version $Revision:: 30 $
//
// Archive $Archive:: /LMS2006/Sys01/Main/Firmware/Source/c_display. $
//
// Platform C
//
#ifndef CDISPLAY_IOM
#define CDISPLAY_IOM
#define pMapDisplay ((IOMAPDISPLAY*)(pHeaders[ENTRY_DISPLAY]->pIOMap))
// Constants related to simple draw entry (x = dont care)
enum
{
DISPLAY_ERASE_ALL = 0x00, // W - erase entire screen (CMD,x,x,x,x,x)
DISPLAY_PIXEL = 0x01, // W - set pixel (on/off) (CMD,TRUE/FALSE,X,Y,x,x)
DISPLAY_HORISONTAL_LINE = 0x02, // W - draw horisontal line (CMD,TRUE,X1,Y1,X2,x)
DISPLAY_VERTICAL_LINE = 0x03, // W - draw vertical line (CMD,TRUE,X1,Y1,x,Y2)
DISPLAY_CHAR = 0x04 // W - draw char (actual font) (CMD,TRUE,X1,Y1,Char,x)
};
// Constants related to Flags
enum
{
DISPLAY_ON = 0x01, // W - Display on
DISPLAY_REFRESH = 0x02, // W - Enable refresh
DISPLAY_POPUP = 0x08, // W - Use popup display memory
DISPLAY_REFRESH_DISABLED = 0x40, // R - Refresh disabled
DISPLAY_BUSY = 0x80 // R - Refresh in progress
};
#define DISPLAY_HEIGHT 64 // Y pixels
#define DISPLAY_WIDTH 100 // X pixels
#define DISPLAY_MENUICONS_Y 40
#define DISPLAY_MENUICONS_X_OFFS 7
#define DISPLAY_MENUICONS_X_DIFF 31
#define DISPLAY_IDLE ((pMapDisplay->EraseMask == 0) && (pMapDisplay->UpdateMask == 0))
enum TEXTLINE_NO // Used in macro "TEXTLINE_BIT"
{
TEXTLINE_1, // Upper most line
TEXTLINE_2, //
TEXTLINE_3, //
TEXTLINE_4, //
TEXTLINE_5, //
TEXTLINE_6, //
TEXTLINE_7, //
TEXTLINE_8, // Buttom line
TEXTLINES
};
enum MENUICON_NO // Used in macro "MENUICON_BIT"
{
MENUICON_LEFT, // Left icon
MENUICON_CENTER, // Center icon
MENUICON_RIGHT, // Right icon
MENUICONS
};
enum SPECIAL_NO // Used in macro "SPECIAL_BIT"
{
FRAME_SELECT, // Center icon select frame
STATUSTEXT, // Status text (BT name)
MENUTEXT, // Center icon text
STEPLINE, // Step collection lines
TOPLINE, // Top status underline
SPECIALS
};
enum STATUSICON_NO // Used in macro "STATUSICON_BIT"
{
STATUSICON_BLUETOOTH, // BlueTooth status icon collection
STATUSICON_USB, // USB status icon collection
STATUSICON_VM, // VM status icon collection
STATUSICON_BATTERY, // Battery status icon collection
STATUSICONS
};
enum SCREEN_NO // Used in macro "SCREEN_BIT"
{
SCREEN_BACKGROUND, // Entire screen
SCREEN_LARGE, // Entire screen except status line
SCREEN_SMALL, // Screen between menu icons and status line
SCREENS
};
enum BITMAP_NO // Used in macro "BITMAP_BIT"
{
BITMAP_1, // Bitmap 1
BITMAP_2, // Bitmap 2
BITMAP_3, // Bitmap 3
BITMAP_4, // Bitmap 4
BITMAPS
};
enum STEP_NO // Used in macro "STEPICON_BIT"
{
STEPICON_1, // Left most step icon
STEPICON_2, //
STEPICON_3, //
STEPICON_4, //
STEPICON_5, // Right most step icon
STEPICONS
};
#define SCREEN_BITS ((ULONG)0xE0000000) // Executed as 1.
#define STEPICON_BITS ((ULONG)0x1F000000) // Executed as 2.
#define BITMAP_BITS ((ULONG)0x00F00000) // Executed as 3.
#define MENUICON_BITS ((ULONG)0x000E0000) // Executed as 4.
#define STATUSICON_BITS ((ULONG)0x0001E000) // Executed as 5.
#define SPECIAL_BITS ((ULONG)0x00001F00) // Executed as 6.
#define TEXTLINE_BITS ((ULONG)0x000000FF) // Executed as 7.
#define SCREEN_BIT(No) ((ULONG)0x20000000 << (No))
#define STEPICON_BIT(No) ((ULONG)0x01000000 << (No))
#define BITMAP_BIT(No) ((ULONG)0x00100000 << (No))
#define MENUICON_BIT(No) ((ULONG)0x00020000 << (No))
#define STATUSICON_BIT(No) ((ULONG)0x00002000 << (No))
#define SPECIAL_BIT(No) ((ULONG)0x00000100 << (No))
#define TEXTLINE_BIT(No) ((ULONG)0x00000001 << (No))
typedef struct
{
void (*pFunc)(UBYTE,UBYTE,UBYTE,UBYTE,UBYTE,UBYTE); // Simple draw entry
ULONG EraseMask; // Section erase mask (executed first)
ULONG UpdateMask; // Section update mask (executed next)
FONT *pFont; // Pointer to font file
UBYTE *pTextLines[TEXTLINES]; // Pointer to text strings
UBYTE *pStatusText; // Pointer to status text string
ICON *pStatusIcons; // Pointer to status icon collection file
BMPMAP *pScreens[SCREENS]; // Pointer to screen bitmap file
BMPMAP *pBitmaps[BITMAPS]; // Pointer to free bitmap files
UBYTE *pMenuText; // Pointer to menu icon text (NULL == none)
UBYTE *pMenuIcons[MENUICONS]; // Pointer to menu icon images (NULL == none)
ICON *pStepIcons; // Pointer to step icon collection file
UBYTE *Display; // Display content copied to physical display every 17 mS
UBYTE StatusIcons[STATUSICONS]; // Index in status icon collection file (index = 0 -> none)
UBYTE StepIcons[STEPICONS]; // Index in step icon collection file (index = 0 -> none)
UBYTE Flags; // Update flags enumerated above
UBYTE TextLinesCenterFlags; // Mask to center TextLines
UBYTE Normal[DISPLAY_HEIGHT / 8][DISPLAY_WIDTH]; // Raw display memory for normal screen
UBYTE Popup[DISPLAY_HEIGHT / 8][DISPLAY_WIDTH]; // Raw display memory for popup screen
}
IOMAPDISPLAY;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -