wsock.udp的使用
第二种方法: 利用线程来循环接收数据, udpServer.recvfrom(1024);这个函数里面用了多次自调用,所以可以认为是阻塞式接收吧, 当有接收到数据,才能执行后面的代码
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add() /*}}*/ import console import wsock.udp.client; console.open(wsock.udp的使用
udp和串口类似,这个利用网络协议.
发送暂且不说, 接收可以采用两种办法:
1,采用asynClient异步客户端 , 这样可以在界面线程中通过消息来操作
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add() /*}}*/ import console //异步客户端 import wsock.udp.asynClienthalcon写微信跳一跳辅助
在前面版本的基础上增加了参数外部可调功能:
ios系统手机要想和PC机相连来截图,需要用到airplayer Pro软件,安装之后可以根据获取到的句柄截图,然后进行操作.
import win.ui; /*DSG{{*/ mainForm = win.form(text="跳一跳视觉halcon写微信跳一跳辅助
实测发现上述代码还是有一点不足,如果图像中有一个类似汉堡店的图形,那么小人的定位就不准,导致跳板定位也不准,于是,重新更改了小人的获取方式
图像进行缩放阈值处理之后,
halcon代码如下:
read_image (Img2506, 'C:/Users/Administrator/Desktop/t1ttest/halcon_T1T/res/tt/IMG_2506.PNG') rgb1_to_gray (Img2506, GrayImage) scale_image (GrayImaghalcon写微信跳一跳辅助
另外一个思路:
观察发现跳一跳的图形都是从小人脚部开始向左或者向右成30度角形成的跳板,而且跳板的中心就是这个跳板最顶部的点的正下方, 于是,我们可以以小人脚部点30度画一条斜线, 跳板的最高顶部点画一条垂直线, 两条线相交的地方就是跳板中心点.
通过简单的三角计算,就可以得到落脚点的中心坐标了.
于是只要找到了小人的脚部坐标和跳板的最高处坐标, 就可以进行操作了.
import win.ui; /*DSG{{*/ mainForm = win.form(text="Hal局部控件全屏展示(非窗体全屏,而是任意一个控件全屏)
以上代码实现了双击主界面中的custom来让custom全屏的功能:
但是,如果custom.loadForm()之后,在按照上面的方法就行不通了.因为这时候回调函数
w
如何让Button按钮实现[单击]和[长按]功能
很多时候为了用户操作方便,需要在窗口功能中实现 长按功能 ,并且也不能失去这个按钮的单击功能, 那么
一般应该是这样判断, 当按钮被按下的同时, 开启一个定时器(例如300毫秒), 然后判断在这段时间内是否松开了鼠标, 如果没有松开就判断它为长按, 否则为普通的单击事件
由此考虑: 有两种办法
1,开启一个1毫秒定时器 , 在定时器里获取鼠标左键状态 , 如果发现在不到300毫秒的间隔之内松开了鼠标,那么判定为单击, 超过300毫秒仍然处于按下状态则判断为长按!
2,利用多线程操作, 按下的同时开启一个线程
menu菜单选中状态设置
menu菜单选中状态设置
一鹤先生新增的menu菜单单选功能:
menu菜单选中状态设置
局部控件全屏展示(非窗体全屏,而是任意一个控件全屏)
窗体之间的通信,与模态窗体的通信的两种方式
以上这种方式有它的好处和弊端:
好处: 一对多, 凡是运行了的程序中有这个接收
subscribe()
的都会同一时间接收到消息.
aar调用网站语音合成
做了个界面:
发现貌似文本过长的话,有时候就会转换失败导致播放不了....
解决办法: 可以利用标点符号进行分隔, 然后将分隔的字串按照顺序一个个转换,这个播放的时候转换下一个,..依次进行知道结束...
import win.ui; /*DSG{{*/ mainForm = win.form(text="aardio form";right=553;bottom=334) mainForm.add( button={cls="button";text="语音合成";left=393;aar调用网站语音合成
在aar的官方论坛看到有人问怎么调用网站那个语音合成?
网站是 peiyinge.com/make/
跳一跳中从skeleton骨架里拟合椭圆
另外一种写法:
这种适应性差,只为学习用
将图片进行灰度之后,阈值缩放加深对比色,然后利用灰度方块统一色调,整个画面图形就全是黑色了,然后找边缘...这里就又问题了.边缘有些顺序不一致.....
// var ret,Image1, Image2, Image3 = halconc.decompose3 (gameImage, 0,0,0); var ret,ROI_0 = halconc.gen_rectangle1 (0, 218.498, 2.83828, 122