Python 字符转Ascii码
ord('a') # 97
ord('a') # 97
关闭输入法的快捷键Alt+Shift, 直接切换到英文状态
https://developer.cisco.com/certification/
似乎是一个和CCxx体系对等的认证体系, 价格没找到, 50多美金?
配置初始化/目标程序初始化/获取新数据
三个阶段发生异常就会直接退出目标程序初始化
开始config.xlsx
的读取方式为从commander中读取.读取config.xlsx->读取并设置logLevel->读取并设置g_iRetryNumber->config.xlsx的内容赋值给全局变量g_dicConfigData
res\data\config.xlsx
中读取配置. 这个文件已有的默认参数不要修改, sheet名不要修改, 其他流程块会有用的. 不过可以在已有sheet里增加新的参数, 也可以增加新的sheet名. 增加新参数不需要改代码, 增加sheet名需要修改sheetsName
数组g_dicConfigData["常量设置"]["ExScreenshotsFolderPath"]
吧, 似乎这儿又没有专门给一个短一点儿的变量用了.config.xlsx
中, 最好另建立文件. 我看似乎也不那么绝对, 如果业务数据不多的话, 放在一个文件里, 用户也比较好管理吧config.xlsx/本地参数/appsName
中的进程配置初始化
中赋值True, 在获取新数据
中赋值False, 而由于配置初始化
只运行一次, 意味着这个判断只会有一次为True. 这次为True的目的只是为了在初次运行前获取新数据
配置初始化
中赋值False, 在重试计数中按最大重试计数进行翻转. 即: 未达到最大重试次数时为True,并把g_iCount++, 达到了为False并将重试计数器g_iCount清零. config.xlsx["常量设置"]["ExScreenshotsFolderPath"]
的配置路径保存本地截图并上传给commander截图的. If (shotsPath <> "") And (Not IsNull(shotsPath))
Upload.UploadScreenShot("image_"&sRet,shotsPath,True,{"sDescribe":"最后一次重试后的现场截图"})
End If
config.xlsx["常量设置"]["ExScreenshotsFolderPath"]
中写配置路径的\
是不需要转义的,写一个\
就行了目标程序初始化
,目的应该是杀一下app清洁一下运行环境. 根据是否重试,决定再操作一遍还是操作下一组数据
objExcelWorkBook = Excel.OpenExcel("",True,"Excel","","")
arrayRet = Excel.ReadRow(objExcelWorkBook,"Sheet1","A1")
Excel.CloseExcel(objExcelWorkBook,True)
g_dicTransactionItem["TransactionData"] = arrayRet
* 当然我觉得为了读取一行数据就开关一次excel(这么耗费CPU和时间的操作)似乎有些傻, 是我的话就在`配置初始化`里面一次从Excel读取所有数据,然后再进行内存操作, 所以上面这段excel读取代码可以删掉,重写为变量读取代码.
## 是否有数据判断
* **需要修改键值**
如下:
```vb
Not IsNull(g_dicTransactionItem["TransactionData"])
TransactionData
是需要修改为实际的键名的, 如出发地
之类的,如果找不到这个键名就认为没有数据g_dicTransactionItem
这一项在配置初始化/获取新数据
中都会初始化为null. 当然这样看在配置初始化
中再初始化为null显得很多余, 且不说在flow定义全局变量的时候本来就会初始化一次, 这样就至少初始化为null 3次了.配置初始化/目标程序初始化/获取新数据
三个模块的异常流程结束
了$
开头的 $BlockInput: 上一个实线连接的流程块的Return值,或者上一个虚线连接的流程块抛出的异常
$UB.InstallPath: UiBot的安装路径
$UB.Version: UiBot的版本信息,将会得到一个Dict变量,里面包含不同的字段,标明版本信息的不同组成部分。今后还会扩充
$Flow.WorkPath:当前运行的流程或者子流程的所在路径。如果是流程,就是流程所在路径。如果是子流程,就是子流程所在路径。
$Flow.ElaspedTime:当前运行的流程或者子流程已经运行的时间,以毫秒为单位。比如 $Flow.ElaspedTime 的值为100,代表从当前流程开始运行,到目前为止已经过了100毫秒。
{
"InstructionBits" : 64,
"Product" : "UiBot Creator Community 5.5.0"
}
因为能在worker和store上运行, 所以对应的版本显示应该有所不同.
/*
作者:
时间:
说明:
设计步骤:
*/
/*
功能:通过用户名匹配数据表,得到对应的值
入参:数据表、用户名
出参:返回对应用户名的值
*/
Function MyFun(dateTable,userName)
Return "xxx"
End Function
操作 | 注释方式 |
---|---|
增加 | //Add by xx. yyyy.mm.dd ... //End |
修改 | //Mdf by xx. yyyy.mm.dd ... //End |
删除 | //Del by xx. yyyy.mm.dd |
//mdf by WL 2020.4.24
//false修改为true
Excel.CloseExcel(objExcelWorkBook,true)
//End
类型 | 要求 |
---|---|
变量 | 首字母小写 |
全局变量 | g_开头 |
布尔变量 | is开头 |
布尔值 | 首字母大写, False/True(奇怪没有用全大写) |
空值 | Null, 但建议小写为null(嗯,怪怪的, 不打算服从) |
数据类型 | dict/arr等开头 |
函数名 | 首字母大写 |
* 必须对日志级别进行设置
* 在流程编写和测试过程中,日志级别设置为3级,便于流程运行过程中通过日志中的相关日志和调试信息进行代码调整;测试通过后,流程正式上线生产环境之前,将日志级别设置为2级,调试输出内容不作为正式日志内容。
* 流程块步入、步出日志。在每个流程块中,开始功能代码之前先写入日志,说明对应流程块开始执行;所有功能代码结束后,写入日志说明对应流程块运行结束。如下所示:
Log.Info("环境初始化开始")
…
Log.Info("环境初始化结束")
Log.SetLevel(2)
Log.Info("银联POS流程环境初始化即将开始")
//结束所有谷歌浏览器进程
App.Kill("chrome.exe")
* 关键操作完成注释。在部分容易出现异常的界面操作完成后,建议添加日志内容来体现动作的完成,例如:
```js
//点击下载按钮
Mouse.Action()
Log.Info("下载按钮点击成功")
我认为在If里面添加注释就好了, 所有的If都添加Log实在是多此一举, 尤其考虑If在循环中的时候, 大量数据会使得日志中充斥着无用的分支日志
// 如果没有文件,则发送邮件,结束流程
If Len(fileList) = 0
Log.Info("本次无需导入数据,准备结束流程")
exit()
Else
Log.Info("需要导入数据,流程继续运行")
End If
确实有人的人机交互模式下, 按照中级的要求似乎要有右下角信息提示.Dialog.Notify("Content", "Title", "0")
最后一个是icon.
但Worker中的人机交互并不是一定有人守着, 因为Worker也有定时, 定时器到的时候人不在旁边也很正常. 所以Worker的人机交互指的是与Worker的交互而不是和Bot的交互
/res, *.flow, *.task
2020-2-26
腾讯物联网支持的:
序号|模组商|模组型号|通信制式
--|--
1|乐鑫|ESP8266|Wi-Fi
2|中移|M5310-A|NB-IoT
3|中移|M5311|NB-IoT
4|中移|M6315|2G
5|中移|M8321|4G
6|中移|ML302|LTE Cat.1
7|有方|N10|2G
8|有方|N21|NB-IoT
9|有方|N58|NB-IoT
10|有方|N720|4G
11|移柯|L206D|2G
12|移柯|L501C|LTE Cat.1
13|移柯|L620C|NB-IoT
14|广和通|L610|LTE Cat.1
15|高新兴|ME3616|NB-IoT
华为Hilink模组
RTL8710BX, WIFI
Hi3861, WIFI
MT7682M, WIFI
ESP8266EX, WIFI
RDA5981, WIFI
rt
嘴部动作总是会让人放松
腾讯物联网开发平台的英文名称叫IOT Explorer
[]()
[]()
http://doc.kafox.com/help/gx/index.php?s=/home/article/detail/id/25.html
卡狐软件的,一个序列号一年卖296元.
还有GoGoMail/GOGOSMS, 作用一样,不便宜啊
MarkdownParse, 在标准markdown之外支持目录、公式和Mermaid图表, Mermaid支持流程图、时序图、甘特图、类图、Git图、实体关系图、用户体验图。
这个插件据说是和Typora的Markdown语法完全兼容的。这儿是MarkdownParse使用手册。这儿是meimaid官方使用手册
最近使用发现的问题: 对表格支持不好
一般表格我倾向于最简单写法:
A|B|C
--|--
1|2|3
现在我使用MarkdownParse就无法显示:
A|B|C
--|--
1|2|3
表头分割线必须写成和列数一模一样的方式才能正常显示:
A|B|C
--|--|--
1|2|3
如下:
A | B | C |
---|---|---|
1 | 2 | 3 |
目前是阿里云的“X享主机-X3(云)”, 一年88元,150M网页+8G流量+20M Mysql,PHP主机。不过得益于Typecho的精简,目前网页空间几乎没用,数据库用了不到10%。理论上这辈子似乎也够用了;-P
西部数码,一年68元,买3年送2年,相当于40.8一年。150M网页+15G流量+30M数据库,但似乎是Windows,也没有说是不是php,但其不建议php使用windows,而建议使用linux。
小鸟云, 共享主机原价84现在一年42元,Windows系统,支持php/asp/.net,2G网页+不限流量+100M Mysql。
阿里云的共享云虚机,现在最便宜的优惠后的价格是119每年,2G网页+40G流量+500M Mysql,支持Php。不过其原价是298一年,搞不好续费的时候又给你整什么幺蛾子。