开发日记2021-17、20周
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周相关推荐
- 尚硅谷——谷粒商城项目开发记录——2021.11.20
尚硅谷--谷粒商城项目开发记录--2021.11.20 概念: 1.SpringCloud Alibaba: 简介: Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此 ...
- 云音乐vue开发日记
云音乐vue开发日记 前言 2020-11-21 1.vue中sass的配置 2.页面布局 3.引组件 2020-11-22 1.el-menu的使用 2.css经验 3.element-ui修改默认 ...
- Hitokoto-Spider 一言库爬虫开发日记
原文地址:http://bili33.top/2020/02/11/Hitokoto-Spider/ 不常上CSDN,有问题请到我的博客的对应文章下面的评论区留言或者直接跟我QQ沟通,QQ在我的个人网 ...
- SDL2 游戏开发日记(九) 单机麻将
SDL2 游戏开发日记(九) 单机麻将 单机麻将的基本功能其实年前已经完成了,只是写文档麻烦,再加上懒癌和重度拖延症,就一直拖着没更新.今天周末一个人没什么事干,抽空把它更新了. 麻将的表示 用数组表 ...
- 20189208杨晨曦《移动平台开发实践》第9周学习总结
<移动平台开发实践>第9周学习总结 教材学习内容总结 课堂笔记-正则表达式 ab+:a+一个以上的b *:0次或多次 普通字符:字母数字下划线 \d:数字0-9 \w:字母数字下划线 \s ...
- ping 工具开发日记(1)
ping 工具开发日记(1) 2021.1.15 hyp 0.准备 开发语言:python 3.8 开发环境:windows 7 开发工具:pycharm 应用功能:1.能实现不同系统(windows ...
- 市面上主流编辑器介绍(2021/05/20)
市面上主流编辑器介绍(2021/05/20) 背景 Markdown是一种有用的轻量级标记语言,后续Markdown简写为md. 富文本编辑器(Rich Text Editor,RTE)是一种可内嵌于 ...
- 鸿蒙版瑞幸咖啡开发日记(一)首页布局设计
鸿蒙版瑞幸咖啡开发日记之首页布局设计 1.整体布局设计思路 2.三大模块开发 2.1 头部信息栏的开发 2.2 中间菜单栏的开发 2.2.1 一级分类菜单 2.2.2 二级分类菜单思路整理 2.2.3 ...
- 鸿蒙版瑞幸咖啡开发日记(三)购物车结算栏开发
鸿蒙版瑞幸咖啡开发日记之已点咖啡结算栏开发 1.整体设计思路 2.购物车结算栏布局设计 2.1 右侧购物车图标 2.2 购物车结算栏 2.3 已点咖啡数量圆圈 2.4 已点咖啡模板 这里我实现的效果其 ...
最新文章
- 【高德地图API】那些年我们一起开发的APP—即LBS应用模式分享
- 角点检测——发现图像的特征
- No enclosing instance of type JDStudent is acAcessible. Must qualify the allocation with an enclosin
- 【小白学习C++ 教程】四、C++逻辑运算符、While循环和For 循环
- docker配置国内镜像
- 计算机图形学在线作业,电子科技16秋《计算机图形学》在线作业3 辅导资料
- C++之new和delete探究
- 为什么我不使用 Web 组件?
- Cockos REAPER for Mac(音轨录制编辑软件)
- 批量插入数据到sqlserver
- Windows 7 系统封装文字版 精简教程笔记!
- 本地音乐上传到网易音乐云盘上
- 北京大学研究生计算机考试科目,北京大学计算机科学与技术(智能科学与技术)研究生考试科目和考研参考书目...
- Emotion Expression With Fact Transfer for Video Description基于事实传递的视频描述情感表达
- 深入理解美团 Leaf 发号器开源方案
- WordPress网站利用WP2PCS-SY插件定时、增量网站备份至百度网盘
- DeOldify,这个开源的AI代码可以给你的黑白照片上色
- 达人秀计算机教学,回顾〡信息技术达人秀
- 学会重构与对比 ——码农鼻祖天才香农
- 称重软件这几个模块你了解吗
热门文章
- 在西瓜数据集上用Python实现ID3决策树算法完整代码
- blender用插件导入pmx转fbx后,导入ue4报错:动画不包含根轨迹/根骨骼——解决办法:命名问题
- idea Java 读取MacOS 本地的 rtf 文件内容:中英文皆可
- Java使用FTP、FTPS上传文件
- 三菱FX3G和台达,施耐德两台变频器的通讯示例 通过modbus rtu功能,实现三菱FX3G PLC通讯控制变频器正反转
- Windows操作系统进阶:AD域
- elasticsearch-修改refresh_interval刷新间隔设置
- ffmpeg录制系统声音
- 前端实现页面变灰功能(含 Flutter )
- 从 DevSecOps 流程视角看 IAST 技术应用与发展