搜索
bottom↓
回复: 6

人机交流界面

[复制链接]

出0入0汤圆

发表于 2012-5-15 10:17:39 | 显示全部楼层 |阅读模式
                                        人机交流界面

   将来的电脑硬件由三大部件构成,左右脑的CPU和GPU及输入/输出的I/O。电脑的语言使用A自然语言——对象描述语言。

   我们来看下人脑的一般构造。一般来说,左半脑主要是处理语言、逻辑、文字、数字、分析、次序、数列等功能,即结构
化的学习能力。而许多特殊的功能是由右脑来负责的:处理节奏、旋律、音乐、图片、联想和做白日梦、非语言的模式与空间
关系的功能,即所谓的创意活动。右脑的功能是感性直观思维,这种思维不需要语言的参加,比如掌管“音乐”、“美术”、
“立体感觉”等。而左脑的功能是抽象概括思维,这种思维必须借助于语言和其他符号系统,主管“说话”、“写字”、
“计算”、“分析”等。

   大多数右利手人的大脑左半球具有言语优势功能,即听、说、读、写的语言能力高度发展。左利手人的右脑半球具有非言语
优势功能,各种感知觉高度发展,善于形象思维。左、右大脑虽然具有不同的主要功能,但在它们“工作”时是不能截然分开
的,它们是互相协助工作的,共同来反映客观事物。

   人类右脑具有不可思议的能力,左脑的记忆是低速记忆,而右脑的记忆则是高速记忆,左脑的记忆是一种“劣质记忆”,而
右脑的记忆能力则让人惊叹,它有过目不忘的本领,右脑的记忆能力是左脑的100万倍。其实很多伟人,发明家都是在运用右脑
工作,有些所谓的神童,均是右脑在起作用。更好地开发右脑,把右脑唤醒,

   左右脑之间的高度精密组织系统,是由脑细胞和其它脑细胞相连接,密不可分,在脑中将信息前后左右来回交互地传递。我们
的右脑,可以被理解为「印象脑」,所发挥的能力属于直觉能力,对于外在的信息接受是情境式吸收,不是逻辑和分析的吸收。不
会说话就能分辨出妈妈的声音和长相,这样的能力全由「印象脑」的情境记忆来完成。凡是图象的记忆、情境的记忆、空间的领会、
音乐的动感、艺术的领悟、直觉的反应等等无意识逻辑的运作都是由右脑来完成的。所以,在记忆上,将语言、文字、符号等外界
接受到的信息加上色彩、图象和情境,通过右脑发挥视觉和听觉的想象和连接,将会使记忆的效率更高,记忆的内容更加牢固。

右脑功能有:一、祖先睿智的保留区;二、无意识思维的激发区;三、高效的工作区;四、情绪从容的控制区;五、创造力的暴发区。

   我的家人说,我5岁时才学会说“你”,“我”。所以除了想象力好点如人际交往等能力都要比普通人差。不过,我是忙碌命,
不知是否“勤能补拙”?

  人机交流界面作为信胞核的Shell(外壳)进程。我的想法是把现有的APO操作系统的从登录界面到之后的图形操作界面的所有功能
柔和进Shell里面。其实现有的APO操作系统的人机交流界面做得很好,但用于实现的C语言,C++语言,JAVA语言。。。我个人觉得
使用学习都很烦,不够清晰,隐蔽的抽象的东西太多。
  目前使用A语言开发的人机交流界面Shell还是打算用2D界面,以后再做3D的。

进程与程序的区别:程序是进程的静态文本,进程是执行程序的动态过程;一个进程可以执行一个或多个程序,
    几个进程可以同时执行一个程序;程序可作为软件资源长期保存,进程只是一次执行过程,是暂时的;
    进程是系统分配调度的独立单位,能与其他进程并发执行。进程执行的间断性,决定了进程可能具有多种
    状态。事实上,运行的进程可能具有就绪状态、执行状态、阻塞状态,挂起状态四种基本状态。
    APO中进程的虚拟线性空间是4GZ, 其中2GZ是作为公共映射用。  

进程的两个特点:
        资源所有权:进程是一个可拥有资源的独立单位;
        调度/执行:进程同时又是一个可以独立调度和分派的基本单位;
   因而在进程的创建、撤消和切换中,系统必须为之付出较大的时空开销。也因此,在系统中所设置的进程数目不宜过多,进程切换
的频率也不宜过高,同时也限制了并发程序的进一步提高。APO中进程的最大数量是1K。每个进程的最大线程数是64。
   
线程的实质:
        线程是进程中的一个实体,是被系统独立调度和分派的基本单位,一个进程可有多个线程;
        线程除运行必需的资源外,不拥有系统资源,但它可与同属一进程的其它线程共享进程所拥有的全部资源;
        一个线程可创建和撤消另一线程;同一进程中的线程间可并发执行;线程间相互制约;线程在运行中呈现间断性;
        线程有就绪、阻塞、执行三种基本状态;
线程具有许多传统进程所具有的特征,故又称轻型进程(Light-Weight-Process)或进程元;
       而把传统的进程称为重型进程(Heavy-Weight-Process),它相当于只有一个线程的任务。

        调度:线程为调度和分派的基本单位。进程为拥有资源的基本单位。
      并发性:进程间可并发执行,一个进程中的多个线程间也可并发执行。
    拥有资源:进程是拥有资源的,一个独立单位线程不拥有系统资源。
    系统开销:线程切换的开销远小于进程切换的开销。

用户级线程:发生在一个应用进程的各线程间,无须内核的干预,规则远比进程调度和切换的规则简单。切换速度特别快。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2012-5-15 20:24:24 | 显示全部楼层

   APO的窗口看起来就是显示屏中的一个矩形区域,它的外观与特定的应用程序无关,可是,对于一个应用程序来
说,窗口是屏幕上应用程序能够直接控制的矩形区域。应用程序能够创建并控制主窗口的一切,如大小和形状。当
用户启动一个程序时,一个窗口就被创建了。用户每次单击窗口,应用程序作出响应。关闭一个窗口会使应用程序
结束。通过将屏幕分为不同的窗口,用户能够使用键盘或鼠标选择一个并行运行的应用程序,以此对多任务环境中
的一个特定程序进行输入。APO的窗口被边框所包围,边框由围出窗口的线条组成。所有的APO应用程序都具有诸如
边框、控制菜单、About对话框之类的共同特征。这些特征使得各个APO应用程序非常类似。APO的窗口由不多于256
的子窗口节点描述,而子窗口又有子窗口。。。。
   
  APO窗口的图元:在其父窗口上画的基本图形。如字符串,控制图标,边框,光标,游标,小位图,几何图形等。

    从应用程序的角度来看,消息是关于发生的事件的通知。用户可以通过按下或移动鼠标来产生这些事件,也可
以是通过改变窗口大小或选择一个菜单项等。这些事件也可以由应用程序本身产生。APO本身也能产生消息。

  APO窗口的对象描述文档后缀是.ikwd,窗口与图元的样式描述文档后缀是.css。这2个文档都是由右脑GPU来解读与实现。
右脑GPU还处理一些隐含的窗口消息并实现一些标准操作,是由内核的GPU消息处理代码文档描述。如:   
  如果将鼠标指针放在边框上并按下鼠标的左键,用户就可以改变窗口的大小。
  系统控制图标是每个窗口左上方的小图片,每个应用程序都使用它。在控制图标上单击鼠标键会使APO显示系统菜单。
系统菜单提供了诸如Restore,Move,Size,Minimize,Maximize以及Close这样的标准操作。
  每个APO应用程序都在窗口的右上角显示三个图标。最左边的图标是一段短下划线,这就是最小化图标。它可以使用程序被最小化。
     最大化图标是三个图标中中间的那一个,看起来象两个小窗口。使用最大化图标可以使用应用程序占满整个
       屏幕。如果选择了这个图标,其它应用程序窗口都会被盖住。
  如果有必要,应用程序可以显示一个垂直滚动条。垂直流动条显示在应用程序窗口的右边,在两端有两个方
      向相反的箭头。它还有一个着色的棒和一个透明的窗口块。后者被用于显示当前显示内容与整个文档
        (着色的棒)的关系。你可以用滚动条来选择显示哪一页。一般在任何一个箭头上单击一下会使显示内
          容移动一行。单击向上箭头下方的窗口块并拖动它会使屏幕输出快速更新到应用程序屏幕输出的任意位置。
  也可以显示一个水平滚动条。水平滚动条显示在窗口的底部,具有与垂直滚动条类似的功能。你用它来选择
      要显示哪些列。一般在任何一个箭头上单击一个会使显示内容移动一列。单击向左箭头右边的窗口块并
        拖动它会使屏幕输出快速更新到应用程序屏幕输出的任意位置。
  一个可选择的菜单条可以显示在标题条的下方。通过菜单条来选择菜单和子菜单。这种选择可以通过用鼠标
    单击,也可以用热键组合来实现。热键组合经常是ALT与命令中带下划线的字母的组合,比如File命令中的“F”。
   
标题条子窗口
    应用程序的名字显示在窗口顶部的标题条中。标题条非常有用,它可以帮助你记住正在运行哪个应用程序。
      活动应用的标题条以不同于非活动应用程序的颜色显示。

用户区子窗口
    通常用户区占据了窗口最大的部分。这是应用程序的基本输出区域。应当由应用程序来复杂管理用户区。另
      外,应用程序可以输出到用户区。
        
图标
  图标是用来使用记住特定操作、想法或产品的小图形对象。比如,一个电子表格程序被最小化时可以显示一
个很小的柱状图以提醒用户这个程序还在运行之中。在柱状图上双击鼠标会使APO激活这个应用程序。图标是非
常有力的工具。它很适合用来引起用户的注意,比如在发出错误警告或者是向用户提供选择时。

光标
  光标是APO用来跟踪指点设备的运动的图形符号。这种图形符号可以改变形状以指明特定的APO操作。比如,
当标准的箭头光标变为沙漏光标时说明APO正在执行一个命令,需要暂停。
   
编辑光标
  应用程序在窗口中显示编辑光标以告诉用户在哪儿输入。编辑光标与其他屏幕符号显然不同,因为它是闪烁
的。多数时候,鼠标输入与光标相连,而键盘输入与编辑光标相连。但是,可以用鼠标来改变编辑光标的输入点。
   
消息框
  消息框是另一类APO图形对象。消息框是一种包含标题、图标和消息的弹出式窗口。
      
对话框
  对话框与消息框相似的地方在于它也是一种弹出式窗口。但是对话框主要用于接受用户输入而不仅仅是显
示一些输出。对话框允许应用程序接受输入,每次一个域或是一个框的内容,而不是每次一个字符。
对话框的布局通常用编译器中的资源编辑器完成。

字体
  字体是一种图形对象或资源,它定义了完整的字符集合的字样。这些字符都有一个特定的大小和风格,可以
使文本具有不同的外观。字样是字符的一种基本属性,它定义了字符的衬线和笔画宽度。
   
位图
    位图是一种显示图片(按像素组织),存储于内存。当应用程序需要快速显示图片时可以使用位图。因为位图
      直接从内存中传送,所以它比用程序重新画出图片要快得多。位图有两个基本用途。首先,它可以在屏幕
        上显示图片。其次位图也用于创建刷子。刷子使你可以在屏幕上画出并填充对象。
  使用位图有两个缺点。首先,与其尺寸有关,位图会占据难以预估的大量内存。每个被显示的像素都要在内
存中占据相应的空间。位图的另一个缺点是它只包括静态的图片。比如,如果用位图来代表一辆汽车,就没有办
法来访问图片的不同部分,如轮踏、顶盖、窗等。
   
画笔
  当APO在屏幕上显示一个图形时,它使用当前画笔的信息。画笔用于画出线条或轮廊。画笔具有三个基本特
征:线宽、线型(虚线、短线、实线)以及颜色。你也可以创建自己的画笔。
   
刷子
  APO用刷子来画出颜色并以预定义的样式来填充一个区域。刷子至少有8×8个像素大小。刷子有三个基本特
征:样式和颜色。由于它们至少有8×8的大小,刷子被称作具有样式而不象画笔,称为线型。样式可以是纯的颜
色,也可以是阴影线、斜线或其它用户自定义的组合

    具有相似的外观和表现的窗口可以被组合成一个类,以此来减少需要维护的信息。因为每个窗口类都有自己
      的可共享的类结构,不需要复制不必要的窗口类参数。同时,同类的两个窗口使用相同的函数以及相关的
        例程。这样可以节省时间和空间,因为不存在代码复制。类的描述文档就是设计蓝图,后缀.class。

  基本图元库,字库是GPU里的2个位图库。基本图元库的索引是1字的16进制数如0X1111等,而字符串中的字符则是字库的索引。
后面会以构建Shell为例。   
   

出0入0汤圆

发表于 2012-5-15 21:01:57 | 显示全部楼层
本帖最后由 sddp001 于 2012-5-15 21:07 编辑

不知所云 APO?  

出0入0汤圆

 楼主| 发表于 2012-5-16 01:32:54 | 显示全部楼层
窗口标识(ID):窗口里有许多类型的对象,如菜单、控制图标、画笔和刷子、字符串标签,光标。
    应用程序源代码文档中的所有资源:菜单项,控制图标,字符串,光标子窗口,样式ID等。即是说对象描述文档
内的所有节点(包括属性节点,子节点)都会由编译器统一分配一个唯一的资源索引数值(也是对应的样式号)。
每个文档都有一个资源索引数组。

    程序的每个运行着的拷贝叫做实例。因为APO允许你同时运行一个程序的多个实例,系统就有必要保持对这些
实例的追踪。这是通过赋予每个运行实例一个唯一的进程对象索引来实现的。

// login.ikwd   登录窗口描述文档,Shell进程的第一个画面。可以仿照Windows操作系统的登录界面。IK是窗口的双拼。

loginIK{        // 根登录窗口,其样式是0号:定义根窗口的背景色或背景位图资源及窗口的宽高。

IK  login_YH1   //0X0001 根窗口中部的用户名登录子窗口,开始是用户的K个登录名字与图标。当用户点击了其中的一个
                //名字图标后,子窗口login_YH1消失,取而代之是子窗口login_YH2显现。注释0X的数值是样式号。
IK  login_YH2   //0X0002  根窗口中部的用户名与密码框子窗口。

IK  PC_GB       //0X0003  根窗口左下部的装有计算机关闭图标与文字标签的子窗口。



// 窗口是装图元和子窗口的容器。TY是图元的双拼。TX则指是字符串。

login_YH1{  //假设有3个用户名。则对应有3个图标假设其图元索引是1,2,3。

TY  用户名字1  0X0001    // 0X0004  在父窗口login_YH1上画图标1。0X数值是图元索引。

TY  用户名字2  0X0002    // 0X0005  其实CPU传给GPU的没有TY  图元名字,只是0X的数值。

TY  用户名字3  0X0003    // 0X0006  TY  图元名字不过是给编译器和人看吧。窗口名字也是。



login_YH2{  //有一个需用户输入密码的编辑框子窗口,3个图标。

TY  用户名字   0X0004    // 0X0007  在父窗口login_YH2上画图标1。0X数值是图元索引。

TY  输入回车   0X0005    // 0X0008  确认图标。

TY  帮助       0X0006    // 0X0009  帮助图标。

IK  Text1                // 0X000A  密码输入的文本框子窗口。



PC_GB{     //有一个图标,一个标签。

TY  问号?     0X0007           // 0X000B   问号?图标。

TX  标签名   "是否关闭计算机"   // 0X000C  



//如果图标除了位置不一样外,其它一致,我们就可定义一种公共的样式如TB_css来描述图标的共同点了。
//在图标的样式中写入引用TB_css这一行就可以了。

TB_css{

  图标的颜色 0X111111
  
  图标的宽度 0X1111
   
  图标的高度 0X1111
   
  当鼠标在图标框时的GPU消息处理号 0X1111
   
  当鼠标点击图标时的GPU消息处理号 0X0001  // 把这消息通知CPU,由CPU处理这消息。同样CPU处理消息后
   
                                          // 也可能会发消息给GPU。如重画一些窗口等。
   
}

//  如果用户点击了回车,那密码验证的消息处理可以由CPU或GPU处理。

。。。。。。。。。。。。。。。。。。。。。

出0入0汤圆

发表于 2012-5-16 09:16:56 | 显示全部楼层
虽然我看不懂,但人类需要异想天开者、梦想者。
把梦想付诸实施的人,是最值得尊敬的。

出0入0汤圆

发表于 2012-5-16 09:42:53 | 显示全部楼层
也许又是一个伟大的创新,支持作者!

出0入0汤圆

 楼主| 发表于 2012-5-17 17:59:09 | 显示全部楼层
//按A语言新规范重写。

//窗口描述文档JDMUF节点描述符的定义:

//根窗口JDMUF节点描述符的定义:

JDMUF{

BU16  JDMUF1;  // 最高字的高字节JDMUF1H是根节点的深度级数,0X00。低字节是所含的子节点数。

BU16  JDMUF2;  // 分配到的唯一的文档对象索引值。

BU16  JDMUF3;  // 根窗口初始化的宽度Width。

BU16  JDMUF4;  // 根窗口初始化的高度Height。

BU16  JDMUF5;  // 根窗口初始化的X坐标。

BU16  JDMUF6;  // 根窗口初始化的Y坐标。

}   

//子窗口JDMUF节点描述符的定义:

JDMUF{

BU16  JDMUF1;  // 最高字的高字节JDMUF1H是子节点的深度级数,最大到255级。低字节是所含的子节点数。

BU16  JDMUF2;  // 窗口样式索引值。

BU16  JDMUF3;  // 窗口初始化的宽度Width。

BU16  JDMUF4;  // 窗口初始化的高度Height。

BU16  JDMUF5;  // 窗口初始化的X坐标。

BU16  JDMUF6;  // 窗口初始化的Y坐标。

}   

//图元JDMUF节点描述符的定义:

JDMUF{

BU16  JDMUF1;  // 最高字的高字节JDMUF1H是子节点的深度级数,最大到255级。低字节是图元的类型。

BU16  JDMUF2;  // 图元样式索引值。

BU16  JDMUF3;  // 图元库索引指针高字。图元是字符串时,这是字符串的长度。

BU16  JDMUF4;  // 图元库索引指针低字。图元是字符串时,这是指向字符串的指针。

BU16  JDMUF5;  // 图元的X坐标。或是相对父窗口的的X距离,可以是像素或百分数。

BU16  JDMUF6;  // 图元的Y坐标。或是相对父窗口的的Y距离,可以是像素或百分数。

}   

// login.ikwd   登录窗口描述文档,Shell进程的第一个画面。可以仿照Windows操作系统的登录界面。

login{           // 根登录窗口,其样式是0号:定义根窗口的背景色或背景位图资源。

用户名登录窗口(JDMUF); //其样式是0X0001; 根窗口中部是用户的K个登录名字与图标。当用户点击了其中的一个名字
                        //图标后,用户名登录子窗口消失,取而代之是密码输入子窗口显现。

密码输入窗口(JDMUF);   //其样式是0X0001  根窗口中部的用户名与密码框子窗口。

计算机关闭窗口(JDMUF); //其样式0X0001  根窗口左下部的装有计算机关闭图标与文字标签的子窗口。



// 窗口是装图元和子窗口的容器。

用户名登录窗口{  //假设有3个用户名。则对应有3个图标。

  用户名字1的图元(JDMUF);    // 其样式0X0002  在用户名登录窗口上画图标1。0X数值是图元索引。

  用户名字2的图元(JDMUF);    // 其样式0X0002  其实CPU传给GPU的没有、、图元名字,只是JDMUF。

  用户名字3的图元(JDMUF);    // 其样式0X0002  、、图元名字不过是给编译器和人看吧。窗口名字也是。



密码输入窗口{  //有一个需用户输入密码的编辑框子窗口,3个图标。

  用户名字的图元(JDMUF);    // 其样式0X0002 在密码输入窗口上画图标1。

  输入回车的图元(JDMUF);    // 其样式0X0002  确认图标。

      帮助的图元(JDMUF);    // 其样式0X0002  帮助图标。

  密码输入的文本框子窗口(JDMUF);   // 其样式0X0003  密码输入的文本框子窗口。



计算机关闭窗口{     //有一个图标,一个标签。

  问号?的图元(JDMUF);      // 其样式0X0002   问号?图标。

  是否关闭计算机(JDMUF);    // 其样式0X0004  



//通过仅仅编辑一个简单的 CSS 文档,使你有能力同时改变站点中所有页面的布局和外观。
//想法是窗口应用程序与网站网页,游戏应用统一起来成为统一的人机交流界面。

//如果图标除了位置不一样外,其它一致,我们就可指向一种公共的样式如样式0X0002。
css2{

  图标的颜色 0X111111
      
  当鼠标在图标框时的GPU消息处理号 0X1111
   
  当鼠标点击图标时的GPU消息处理号 0X0001  // 把这消息通知CPU,由CPU处理这消息。同样CPU处理消息后也可能会发消息给GPU。如重画一些窗口等。
   
}

//  如果用户点击了回车,那密码验证的消息处理可以由CPU或GPU处理。

。。。。。。。。。。。。。。。。。。。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 23:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表