⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 screensol.h

📁 可以对北京汽车所产生的故障进行诊断的电脑解码器
💻 H
字号:
/******************************************************************************************
 *  目的:显示及人机交互模块
 *  功能:利用现有的位图资源提供基本的图形,菜单显示
          屏幕基本动作
          屏幕缓存操作接口
 *  模块依赖:Screenpre.h Display.h Keyboard.h
 *  思路日志:该模块所需实现的功能可以理解为
          1.该屏幕的主要用途为对16*16文字和8*6文字的显示,对屏幕的控制以当前的一个字宽为单
          位,对屏幕的控制流程理解为:[初始化屏幕并送入待显示信息] -> [屏幕动作] ->
          [响应一个用户对屏幕的操作]。
          2.屏幕动作的编写
            必须首先整理来自与屏幕的信息及元素:
            人机交互的入口为 [键盘按键] 需要先整理出对屏幕产生有效影响的按键有哪些:
            上键,下键,[NO]键,[YES]键。
            然后根据这些按键对屏幕残生的影响收集屏幕存在的元素,即对象体:
            反显光标,屏幕文字
            再然后根据以上搜集的每一个元素针对按键有可能产生的动作编写每一个对象的对象动作:
            光标初始化及复位,光标上移,光标下移,光标左移,光标右移
            屏幕文字初始化及复位,屏幕上翻屏,屏幕下翻屏
          3.初始化屏幕的编写
            首先确定外部对屏幕所产生的所有需求,即需要多少种类型的屏幕边框,此处对于屏幕需求
            的分类有可能会随着屏幕显示方式而不断改变,当前的理解有不确定性
          4.Note 07.9.21 - 添加修改 ScreenAct()
            该模块实现的主要任务理解为将键盘和显示驱动进一步封装成 [屏幕动作] - ScreenAct()
            屏幕动作的入口是 一个键盘按键, 所实现的过程是 依据该按键键值使屏幕作出相应的动
            作 如:光标上下移动和翻屏, 实现完成后将返回一个当前已进行的动作。
            流程例子:用户按下上键 -> 判断并使光标向上移动 -> 移动成功返回光标上移动作宏:
            C_UP 移动不成功返回 屏幕空动作 W_NULL
          5.Note 07.9.21 - 添加修改 UserRip()
            返回当前屏对用户有用的信息
 ******************************************************************************************/
#include "Display.h"
#include "Keyboard.h"
//////////////////////////////////////////////////////////////////////////
//                 Define of Screen Init
//////////////////////////////////////////////////////////////////////////
#define W_MENU    10    //菜单
#define W_TEXT    11    //文本
#define W_STAT    12    //提示信息
#define W_STREAM  13    //数据流特殊屏
#define W_INPUT   14    //数据选择屏
//////////////////////////////////////////////////////////////////////////
//                 Define of Screen Action
//////////////////////////////////////////////////////////////////////////
#define W_NULL  0xff     //当前没有动作
#define W_UP    0xfe     //屏幕上翻
#define W_DOWN  0xfd     //屏幕下翻
#define C_UP    0xfc     //光标上移
#define C_DOWN  0xfb     //光标下移
#define W_OK    0xfa     //屏幕确认
#define W_HELP  0xf9     //屏幕帮助
#define W_FINISH 0xf8    //输入完毕
#define W_CANEL 0xf7     //取消出入
#define W_RETURN   0     //屏幕返回
//////////////////////////////////////////////////////////////////////////
/*
**-------------------------------------------------------------------------------------
** 初始化屏幕 - 添加菜单到屏幕
** 输入:Wmode - 窗口类别
** 输出:无
** 返回:添加成功标记
** 说明:
**-------------------------------------------------------------------------------------
*/
void ScreenInit( unsigned char Wmode );
/*
**-----------------------------------------------------------------------------------------
** 初始化屏幕 - 清除屏幕缓存
**-----------------------------------------------------------------------------------------
*/
void  ClrBuf( );
/*
**-------------------------------------------------------------------------------------
** 初始化屏幕 - 添加菜单到屏幕
** 输入:Mode - 文字宽度格式
** 输出:无
** 返回:添加成功标记
** 说明:
**-------------------------------------------------------------------------------------
*/
void ScreenCHMode( unsigned char Mode );
/*
**-------------------------------------------------------------------------------------
** 初始化屏幕 - 添加菜单到屏幕
** 输入:menu - 待显示文本
         Maxl - 文本行数
** 输出:无
** 返回:添加成功标记
**-------------------------------------------------------------------------------------
*/
char AddMenu( unsigned char *Menu[], unsigned char Maxl );
/*
**-------------------------------------------------------------------------------------
** 初始化屏幕 - 添加新的字符串到屏幕缓存
** string:入口串
** 返回:当前最大行
**-------------------------------------------------------------------------------------
*/
unsigned char  AddString( unsigned char *StringIn );
/*
**-------------------------------------------------------------------------------------
** 屏幕键盘
** 输入:DigNum - 数据个数
** 输出:
** 返回:无
** 说明:
**-------------------------------------------------------------------------------------
*/
void SetMaxDig( unsigned char DigNum );
/*
**-------------------------------------------------------------------------------------
** 屏幕动作 - 外部调用函数
** 输入:无
** 输出:*StartLine - 输出当前屏幕起始行
         *UserLine  - 输出当前屏幕光标所在行
** 返回:在当前屏幕模式下有效的操作和操作结果
** 说明:根据屏幕的初始化结果进行相应的屏幕动作并返回进行成功的屏幕动作宏
**-------------------------------------------------------------------------------------
*/
unsigned char ScreenAct(  unsigned char *StartLine, unsigned char *UserLine );
/*
**-------------------------------------------------------------------------------------
** 屏幕动作 - 初始化光标
** 输入:CursorMode - 初始化模式
** 输出:无
** 返回:初始化成功标记
** 说明:在当前位置初始化光标,必须在屏幕初始化完成后进行
**-------------------------------------------------------------------------------------
*/
char CursorInit( char CursorMode );
/*
**-------------------------------------------------------------------------------------
** 屏幕动作 - 光标移动
** 输入:Action - 光标动作宏
** 输出:无
** 返回:移动成功标记
** 说明:根据当前需求编写的光标移动动作,在模块中将此动作结合按键响应完成当前屏幕的人机
         交互过程
**-------------------------------------------------------------------------------------
*/
char CursorMove( char Action );
/*
**-------------------------------------------------------------------------------------
** 屏幕动作 - 文本移动
** 输入:Action - 文本动作宏
** 输出:无
** 返回:移动成功标记
** 说明:根据当前需求编写的屏幕移动动作,在模块中将此动作结合按键响应完成当前屏幕的人机
         交互过程
**-------------------------------------------------------------------------------------
*/
char ScreenMove( char Action );
/*
**-------------------------------------------------------------------------------------
** 显示驱动 - 设定当前显示位置,光标宽度等于字宽
** 输入:CursorX - 代表第几列字符,0xff代表保持当前列
         CursorY - 代表第几行字符,0xff代表保持当前行
** 输出:无
** 返回:
** 说明:
**-------------------------------------------------------------------------------------
*/
void SetCursor( unsigned char CursorX, unsigned char CursorY );
/*
**-------------------------------------------------------------------------------------
** 显示驱动 - 设定当前的显示颜色
** 输入:NewColor - 代表颜色 0~255
** 输出:无
** 返回:
** 说明:
**-------------------------------------------------------------------------------------
*/
void SetColor( unsigned char NewColor );
/*
**-------------------------------------------------------------------------------------
** 显示驱动 - 在当前行输出字符串
** 输入:string - 输入串
** 输出:无
** 返回:
** 说明:
**-------------------------------------------------------------------------------------
*/
void PutStr( unsigned char *string );
/*
**-------------------------------------------------------------------------------------
** 显示驱动 - 输出当前屏幕
** 输入:ShowMode - 显示模式: 居中或起始输出
** 输出:无
** 返回:
** 说明:
**-------------------------------------------------------------------------------------
*/
void PutScreen( char ShowMode );
/*
**-------------------------------------------------------------------------------------
** 屏幕返回
** 输入:无
** 输出:
** 返回:外部需求的数据
** 说明:
**-------------------------------------------------------------------------------------
*/
unsigned char UserRep( );

//----------------------------------------------------------------- End Of File -------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -