关于一个单双击长按状态机和一个client+server

client.py:

 

server.py:(注意b" "和encode()和端口重用)

报错了端口会被占用的,只能尽量保证它不要报错

 

状态机:(注意if/else的bug)

每个状态机都有按下和松开的情况,除了S_INIT,触发它的只有按下, 所以不用考虑它的松开的情况,并且我们这里只用count来记录。第一次的判断肯定是pinValue,第二次if判断的也就是count的情况。
count是这么理解的,每次while跳进来后只会走一个if,state改变后就去到下一次while中,到下一次while的时候来判断是count++还是以一个状态走。记得回去的时候count清个0。还有一个要注意的是不要只局限于S0和S1,对于S1->S0->S1的情况和S1->S1->S1的情况新开一个STATE去记录它就好了,这样也可以避免陷入死循环。

 

Python的Hash:(应该是叫Dict)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值