2021-4-19

温习了下观察者模式,学习了状态模式。
但是感觉状态模式不是太能把握透彻,代码结构不太一样,理解起来有些偏差。

写着写着就陷入到了沉思中,总会忘记要把想法记下来。
这里就是草稿就是思路演练场,这里写下的东西不需要完美,只要记录下思路反复推演,做到一步步变好就够了。
想着马上搞完马上搞完,时间不知不觉间竟消失得无影无踪。

并击的状态转换图似乎不好画,因为并击的存在,所以还是要把按键符号分成按下和松开两种事件,如此便会有如下的事件划分:

  • 笔画按下
  • 笔画松开
  • 数量按下
  • 数量松开
  • 定位按下
  • 定位松开
  • 全部松开
  • 其它

状态划分似乎还没写过,只是查阅论文的时候,即兴画了画草图,还对着界面有毛病的visio研究了半天到底怎么画图。但当时关于究竟为何划分一个状态,其中用意没有记录,暂且记下有印象的:

  • 空闲状态 00=0
    笔画按下后进入击入状态
  • 击入状态 10=2
    笔画、数量按下后仍为击入状态,全部松开后进入中文状态
  • 中文状态 11=3
    笔画按下后进入击入状态,定位按下后进入移交状态
  • 移交状态 01=1
    笔画按下后进入击入状态(需对击键标记区作处理),定位松开后进入空闲状态

注:
上述各状态转换描述中未提到部分的按键事件,均归为其他事件。其它事件不影响输入状态,其它事件中定位和数量按下时,内部默认按数量处理(程序行为外观无变化)。
状态管理器中实时维护一个击键标记区,一个录入缓冲区。击键标记区,此时按下按键的实时标记;录入缓冲区,本次击键的有效输入(主要用在击入状态下)。
击入状态下,所有按键未完全松开 而有新按键再次击入时,更新录入缓冲区。所有按键松开后将输入缓冲区中的内容提交到键入联。
状态改变后需要利用预处理模块,对击键标记区中的内容作转换处理。

确实写下来逻辑会清晰一些,老是在脑子里空想容易瞻前顾后,最后也整不明白。

还有点各个状态下按键预处理的考量,需要再写一下。

状态控制是否应该采用状态模式?
状态转化的操作指令应该如何下发?

2021-4-20

注意并发多线程问题,有必要时在模块中引入线程ID,同时要接收可变关键字,以应对未来可能的扩展。
把各个状态枚举到一个类中,然后把各状态与其对应的预处理方式加入到字典中,此预处理相关信息放到预处理部分,预处理部分要定义事件分类。

  • 状态控制器中,定义状态模型和状态枚举,然后为每个线程分配一个状态对象,外部进行状态查询时,根据线程ID,返回所需结果。
  • 消息预处理中,对于按键消息的处理,首先利用线程ID查询到当前状态(可能需要通过控制引擎),然后根据状态发送给控制引擎映射信息,发送信息中要携带事件划分的分类信息,以便于状态控制器进行状态转换。

突然感觉自己写c写少了,不管是思维还是实现上,都有点飘。
困的时候干什么能清醒一点呢?

2021-4-22

不同按键调起上下文不同的方法,各方法中,执行状态的不同操作后改变系统状态(在操作中改变状态,功能执行完成后当前状态负责切换当前上下文的状态)
修正:
状态模式似乎应该从控制引擎的角度来看。

2021-4-24

严格明晰线程的启用问题

  • 主控制引擎应用一个独立线程,其中:1、利用状态控制器管理状态;2、利用预处理模块接收系统事件。因为系统事件需要及时响应,输入状态亦需要及时更新,所以其中不能有耗时长的操作

2021-5-15

不知不觉,又是一个不知不觉,竟已经有大半个将近一个月没有动毕设了。这段时间究竟干了什么不得而知,大概是因为恋爱冲昏了我的头脑吧。

近日老师又要推进运动健康机器人的项目,因为有事外出,老师便另找人代我参加,找了隔壁项目张。
说要加功能,要把二维码做通,能扫码查看体测报告和运动处方,把机器人和一体机连起来,还得把一体机搬出来。到20号还要去青岛参加什么比赛,不知道还需不需要我们两个跟设备。

功能还好,只是多两条数据的事情,但是文档有点麻烦,整理了半天才看明白文档结构,去掉数据指标不明的项目以后,所剩不多但其中大段文本中有计算需求,在一段文字里要算心率。此处偷懒,把心率计算的文字给删掉了,不知道会不会有严重的影响,如果留着不做肯定不好看,但是要做的话恐怕项目要做很大的改动,十天时间不能保证一定做完,而且我还有自己的事情,不能投入全部的时间和精力。
二维码原来是写死的,根本就不算个网页,尤其是报告要好好做做。

2021-5-16

把一体机和机器人连起来倒没什么问题,只要有服务器,那段代码注释掉就好了。
搬机器这件事滑稽得很,那天进去修路由器的时候老师就问机器什么时候搬走,那会说要搬到会议室去,教授找了俩业余的人,把摄像头装反了,说好的要找几个人来帮我们搬,结果还是我们自己搞的,末了老师进来看,感叹我们搬完了。摄像头装反,纵跳测不了,问了泰山的人说摄像头不正或者垫子不平,我把摄像头倒过来,果然就好了,这件事,浪费了起码得有一个小时。
本来还想着问问老师找师弟来准备交接的事,现在也不想动弹了,各位老师自己都不上心,我瞎操什么心呢。不过好在后来老师和我提了,要找师弟来,让我们带带。

既然是开发日记,还是多写写开发的东西,牢骚还是不要发了。

和张做了分工,前端分给他,我做后台还有沟通部署的工作,本来他觉得前端超级简单的,我觉得我的任务也很轻松,事实却是前端有麻烦事,我这边服务器部署也不顺利。好在延期了半天,终于做通了,还差机器人一体机没有一起测试。

理代码逻辑的时候发现有的字段属性没有按照原来的意义应用,后来才发现注释里有说明,不过当时没看到,甚至可以说,没看懂,当初自己亲手写下的注释,如今竟然连自己亲手写的注释都看不懂了,实在是骇人!
那注释的语言逻辑,到底应该怎么规范才能表述清晰容易理解呢?

服务器环境配置还好,主要服务器性能高带宽大,没有很花费等待时间。
代码打包部署遇到了一些问题,本来想把代码直接拉到服务器运行,但是显然不行,只能访问jsp页面,servlet不行,java代码没编译呢。
搞了好一会,打了好多war包:
首先,在项目设置的 artifacts里,先打web application exploded包,然后利用这个exploded包打web application archive包
添加 directory content,勾选include in project build,manifest选到web目录,发送到服务器,自动解包,访问jsp也不行了这下,前述动作的先后已经搞不清了,还有添加jar包也试过,也许是因为互相欠缺,没有让我看到成型的效果,tomcat也老是宕机。
经过隔壁项目张提示,把所有查到的都用上,终于跑起来了。
这点东西,似乎也不值得发一篇文章,改天好好理一理看看吧,最好加上git、Jenkins之类一起说。
这是项目部署,还有ubuntu下jdk、mysql、docker等等的环境安装配置也可以发一篇出来,最好加上IDEA远程调测。如果配上远程调测,项目部署将会容易太多。

可能是原来学习编译原理的时候不太认真,今天翻阅龙书,才知道原来状态转换图中,状态是可以具有动作的,控制流到达有动作的状态时,就会执行这些动作。
如此说那就真相大白了:

  • 击入状态下将定位标记转化成数量标记
  • 中文状态下状态改变通知到转换计算模块,计算候选
  • 空闲状态下状态改变通知到提交和显示模块,提交候选并上屏

其余便是按下按键会引起状态切换,这个算是状态切换事件,不算做状态的动作。
这样这个visio,可能又需要重新画图了,暂时倒不用管。

开发日记2021-17、20周相关推荐

  1. 尚硅谷——谷粒商城项目开发记录——2021.11.20

    尚硅谷--谷粒商城项目开发记录--2021.11.20 概念: 1.SpringCloud Alibaba: 简介: Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此 ...

  2. 云音乐vue开发日记

    云音乐vue开发日记 前言 2020-11-21 1.vue中sass的配置 2.页面布局 3.引组件 2020-11-22 1.el-menu的使用 2.css经验 3.element-ui修改默认 ...

  3. Hitokoto-Spider 一言库爬虫开发日记

    原文地址:http://bili33.top/2020/02/11/Hitokoto-Spider/ 不常上CSDN,有问题请到我的博客的对应文章下面的评论区留言或者直接跟我QQ沟通,QQ在我的个人网 ...

  4. SDL2 游戏开发日记(九) 单机麻将

    SDL2 游戏开发日记(九) 单机麻将 单机麻将的基本功能其实年前已经完成了,只是写文档麻烦,再加上懒癌和重度拖延症,就一直拖着没更新.今天周末一个人没什么事干,抽空把它更新了. 麻将的表示 用数组表 ...

  5. 20189208杨晨曦《移动平台开发实践》第9周学习总结

    <移动平台开发实践>第9周学习总结 教材学习内容总结 课堂笔记-正则表达式 ab+:a+一个以上的b *:0次或多次 普通字符:字母数字下划线 \d:数字0-9 \w:字母数字下划线 \s ...

  6. ping 工具开发日记(1)

    ping 工具开发日记(1) 2021.1.15 hyp 0.准备 开发语言:python 3.8 开发环境:windows 7 开发工具:pycharm 应用功能:1.能实现不同系统(windows ...

  7. 市面上主流编辑器介绍(2021/05/20)

    市面上主流编辑器介绍(2021/05/20) 背景 Markdown是一种有用的轻量级标记语言,后续Markdown简写为md. 富文本编辑器(Rich Text Editor,RTE)是一种可内嵌于 ...

  8. 鸿蒙版瑞幸咖啡开发日记(一)首页布局设计

    鸿蒙版瑞幸咖啡开发日记之首页布局设计 1.整体布局设计思路 2.三大模块开发 2.1 头部信息栏的开发 2.2 中间菜单栏的开发 2.2.1 一级分类菜单 2.2.2 二级分类菜单思路整理 2.2.3 ...

  9. 鸿蒙版瑞幸咖啡开发日记(三)购物车结算栏开发

    鸿蒙版瑞幸咖啡开发日记之已点咖啡结算栏开发 1.整体设计思路 2.购物车结算栏布局设计 2.1 右侧购物车图标 2.2 购物车结算栏 2.3 已点咖啡数量圆圈 2.4 已点咖啡模板 这里我实现的效果其 ...

最新文章

  1. 【高德地图API】那些年我们一起开发的APP—即LBS应用模式分享
  2. 角点检测——发现图像的特征
  3. No enclosing instance of type JDStudent is acAcessible. Must qualify the allocation with an enclosin
  4. 【小白学习C++ 教程】四、C++逻辑运算符、While循环和For 循环
  5. docker配置国内镜像
  6. 计算机图形学在线作业,电子科技16秋《计算机图形学》在线作业3 辅导资料
  7. C++之new和delete探究
  8. 为什么我不使用 Web 组件?
  9. Cockos REAPER for Mac(音轨录制编辑软件)
  10. 批量插入数据到sqlserver
  11. Windows 7 系统封装文字版 精简教程笔记!
  12. 本地音乐上传到网易音乐云盘上
  13. 北京大学研究生计算机考试科目,北京大学计算机科学与技术(智能科学与技术)研究生考试科目和考研参考书目...
  14. Emotion Expression With Fact Transfer for Video Description基于事实传递的视频描述情感表达
  15. 深入理解美团 Leaf 发号器开源方案
  16. WordPress网站利用WP2PCS-SY插件定时、增量网站备份至百度网盘
  17. DeOldify,这个开源的AI代码可以给你的黑白照片上色
  18. 达人秀计算机教学,回顾〡信息技术达人秀
  19. 学会重构与对比 ——码农鼻祖天才香农
  20. 称重软件这几个模块你了解吗

热门文章

  1. 在西瓜数据集上用Python实现ID3决策树算法完整代码
  2. blender用插件导入pmx转fbx后,导入ue4报错:动画不包含根轨迹/根骨骼——解决办法:命名问题
  3. idea Java 读取MacOS 本地的 rtf 文件内容:中英文皆可
  4. Java使用FTP、FTPS上传文件
  5. 三菱FX3G和台达,施耐德两台变频器的通讯示例 通过modbus rtu功能,实现三菱FX3G PLC通讯控制变频器正反转
  6. Windows操作系统进阶:AD域
  7. elasticsearch-修改refresh_interval刷新间隔设置
  8. ffmpeg录制系统声音
  9. 前端实现页面变灰功能(含 Flutter )
  10. 从 DevSecOps 流程视角看 IAST 技术应用与发展