开发日记2021-17、20周

2023-11-07

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,可能又需要重新画图了,暂时倒不用管。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开发日记2021-17、20周 的相关文章

随机推荐

  • 在conda虚拟环境中的PyQt配置以及相关Pycharm设置

    文章目录 在conda虚拟环境中的PyQt配置 背景环境介绍 PyQt依赖包及PyQt tools的下载 Pycharm进行PyQt的相关配置 结语 在conda虚拟环境中的PyQt配置 作者 下龙湾 背景环境介绍 anaconda安装文件
  • Netty4简单认知

    Channel简介 在Netty中 Channel相当于一个Socket的抽象 它为用户提供了关于Socket状态 是连接还是断开 及对Socket的读 写等操作 每当Netty建立了一个连接 都创建一个与其对应的Channel实例 Cha
  • 各种排序算法的讲解与实现

    排序的分类 1 内部排序 内部排序 在整个排序过程中不需不访问外存便能完成 称这样的排序问题为内部排序 1 1 插入排序 插入排序 将无序序列中的一个或几个记录 插入 到有序的序列中 从而增加记录的有序序列的长度 主要思想是将第一个元素看做
  • 3D重建模的初步了解

    相关学习资料如下 cousera课程 https www coursera org learn robotics perception youtube课程 https www youtube com watch v RDkwklFGMfo
  • 什么是HTTPS

    首先 在参考 Tomcat内核设计剖析 大型网站技术架构 的基础上加了一些个人理解 如有错误或者不全面的地方 还请大家指出 在知道什么是HTTPS之前 我们首先要知道一下什么是HTTP HTTP是超文本传输协议的简称 工作在应用层 传输层基
  • linux上好玩的东西

    Figlet 想知道tmux安装与配置评论加点赞 想要我这个效果吗 安装figlet mac安装 brew install figlet brew 没有的可以看我之前的文章 ma配置 linux ubuntu deepin sudo apt
  • 最易上手的测试用例设计方法

    NO 1 lt lt 测试用例设计方法 gt gt 以下是八种常见的测试用例设计方法 包括等价类 边界值 判定表 因果图 正交实验 状态迁移图 场景法和错误推测 详述如下 等价类划分法 Equivalence Partitioning 策略
  • C++新特性16_写时拷贝(解决浅拷贝在某一个类对象中的资源进行修改,所有引用该资源的对象全部会被修改的问题;解决办法:在所有改变值的地方,重新分配内存,改变的是拷贝的值,而不影响原有对象中共享资源)

    C 新特性16 写时拷贝 1 问题 如果共享资源中的值发生了变化 那么其他使用该共享资源的值如何保持不变 2 解决思路 使用引用计数时 当发生共享资源值改变的时候 需要对其资源进行重新的拷贝 这样改变的是拷贝的值 而不影响原有的对象中的共享
  • 母版页禁用Enter提交表单

    在母版页里面由于使用了form 常常需要禁用enter提交表单 因为内容页或者母版页自身有如果有type submit 的button 当textbox聚焦时 按下enter都会触发表单的默认提交 不论是IE还是firefox 于是需要在o
  • python json串合并

    获取cookie def get login cookies self str1 str2 str3 str4 str5 str6 try 必须要有的cookie字段 var items bizuin data bizuin data ti
  • 1*1卷积核的作用及其应用举例

    1 降维和升维 通过使用 1x1 卷积核 可以改变输入张量的通道数 当输入张量的通道数较大时 使用 1x1 卷积核进行卷积操作可以将通道数减小 从而降低模型的计算复杂度 相反 如果需要增加通道数 也可以使用 1x1 卷积核进行升维操作 im
  • 标签href几种使用

    a标签的最重要功能是实现超链接和锚点 a标签里href属性是我们经常用的 其实它的值有很多种 可能我们往往会忽略 今天分享一下a标签的属性值及用法 1 href 这是一个比较常用的方法 是标签内置的一个方法 用于网页返回顶部较多 比如在底部
  • 深度学习------tensorflow2.0,keras实现CNN(mnist、cifar2、cifar10:ResNet-34、ResNet-18)

    1 ResNet 34卷积神经网络 cifar10 随着网络的加深 出现了训练集准确率下降 错误率上升的现象 就是所谓的 退化 问题 按理说更深的模型不应当比它浅的模型产生更高的错误率 这不是由于过拟合产生的 而是由于模型复杂时 SGD的优
  • qt day 5

    实现局域网的网络聊天室功能 1 gt 服务器代码 widget h ifndef WIDGET H define WIDGET H include
  • IDEA安装教程(多图预警)

    简介 关于IDEA的介绍 引用自百度百科 IDEA全称 IntelliJ IDEA 是java编程语言开发的集成环境 IntelliJ在业界被公认为最好的java开发工具 尤其在智能代码助手 代码自动提示 重构 J2EE支持 各类版本工具
  • 集简云简化流程模板,轻松实现工作流程自动化

    集简云平台内置大量自动化流程模板 用户可以在 模板中心 搜索应用名称 选择适合自己的场景 直接使用 本期分享集简云自动化工作流程 模板推荐 模板1 小鹅通新增订单后同步到seatable并更新微伴助手用户信息 集成应用 小鹅通 SeaTab
  • [终端配色方案]

    配色方案 一 Iterm2 设置Color Preferences gt Profiles gt Colors Brighten bold text去掉 选择solarized 选择xterm 256color 二 Iterm2 Shell
  • Restful风格

    文章目录 前言 一 Restful风格是什么 二 Restful风格里面的请求方式 1 Get 2 POST 3 PUT 4 DELETE 这四个在项目接口中分别代表的是查 增 改 删 三 Restful风格的Controller如何实现
  • django静态文件无法访问解决方案

    nginx配置如下 For more information on configuration see Official English Documentation http nginx org en docs Official Russi
  • 开发日记2021-17、20周

    2021 4 19 温习了下观察者模式 学习了状态模式 但是感觉状态模式不是太能把握透彻 代码结构不太一样 理解起来有些偏差 写着写着就陷入到了沉思中 总会忘记要把想法记下来 这里就是草稿就是思路演练场 这里写下的东西不需要完美 只要记录下