ROS API 脚本 E语言,,,新手学习记录
本帖最后由 hmy100 于 2013-1-28 22:24 编辑开贴之前首先需要说明我刚学习ROS一周左右时间不长很多问题都没搞清楚
比如什么是pcq以及很Ros的常规操作。
E语言使用了很久,但水平也有限。开贴的目的是分享一下我的到的成果希望你能用上。
我发的是根据我自己的情况,实际使用还需要你根据自己的情况。
ROS我安装的目的是需要智能限速,所以我首先学习的重点就是这里。我所理解的智能限速就是,带宽使用保持在90%以上,看了pcq还是没弄懂原理所以我实现的方法就是 简单限速+脚本
思路是这样,带宽30M 带宽使用超过 25M 就“流量监控”调整简单限速里面 下载速度,然后用用计划任务每5分钟获取一次 WAN口的流量如果低于 多少就 调整下载的限制让他们下载更加快速。
然后降速脚本/queue sim;:if (= "16M/2M") do={set max-limit="10400k/2M"; :log warning "hmy - 1.3M"} else={:if (= "10400k/2M") do={set max-limit="6400k/2M"; :log warning "hmy - 800K"} else={:if (= "6400k/2M") do={set max-limit="4M/2M"; :log warning "hmy - 500K"} else={:if (= "20M/2M") do={set max-limit="16M/2M"; :log warning "hmy - 16M"} else={:log warning "hmy -"}}}}}; if (= "16M/2M") do={set max-limit="10400k/2M"get 1 max-limit 是获取 列表里面第一条记录限制速度然后判断 是否为 “16M/2” 如果是 就 降速 set max-limit="10400k/2M";
加速 脚本 和这个基本一样
在baidu上面看到这个脚本:for aaa from 1 to 42 do={/queue sim dis }这种脚本 CPU使用很高,首先他需要循环42次 其次 就是find本来就属于查询命令,所以尽量在循环中不要使用find 不然很吃CPU
降速用的是ros “流量监控”里面的触发
下面的是放ROS的 计划任务 里面 5分钟判断一次 wan的流量 流量低于多少就执行某脚本 希望你们能看明白,再有就是我的脚本 就算1秒钟你执行10次CPU都不会过3%
然后就是 获取wan的流量了/; :local hmy [:tostr [:pick 10]]; :set hmy [:pick $hmy 19 [:len $hmy]]; :set hmy [:tonum $hmy]; :if (hmy < 6400000) do={/system script job .. run hmy+};:tostr [:pick 10]取wan网卡流量数据,取出来的数组文本所以需要用:tostr 转换为文本型,:set hmy [:pick $hmy 19 [:len $hmy]]取需要的文本,set hmy [:tonum $hmy]转换为整数类型 方便后面的比较 if (hmy < 6400000) do={/system script job .. run hmy+} 这里的 做一个判断低于多少就执行 脚本。 这段代码花费了我不少时间,最终都用翻译然间去翻译ros的官网论坛。
到这里,我觉得限速的智能化已经完成了,至于如何实施就看自己的网络情况了,还有就是不知道为什么我从新写效率高点的在控制台能用,放脚本里面就不能执行了就是这段
/queue sim ; :local hmy ; :if ($hmy = "20M/2M") do={set max-limit="16M/2M"};
:if ($hmy = "16M/2M") do={set max-limit="10400k/2M"};
:if ($hmy = "10400k/2M") do={set max-limit="6400k/2M"};
:if ($hmy = "6400k/2M") do={set max-limit="4M/2M"}; 本帖最后由 hmy100 于 2013-1-28 22:16 编辑
看ros官网的时候留意到 ROS 有API,然后就心想要是能自己做一个 能随时查看 ROS里面的流量 以及以后如果做收费的话就可以DIY一个 收费的软件了
本人就用点E语言所以 都是用E语言来实现的。
首先的也是最关键的 就是用E语言调用API登录进去。。
直接用E语言里面的组件就行了,没必要用其他的
代码有些不好看,这个就是我学习的时候用来测试的。你们就看一下方法吧。
这里是登录。。。哦,需要注意的是,你发送过去的第一个字节是你发送数据的长度,比如你发送一个"/login”函数过去,那么前面必须要加这个命令的长度 ,也就是 {6}+到字节集 (“/login”) 然后还要加上结束符号{0}
好多人难就难在登录这里服务器返回的钥匙处理,
十六进制到十进制 E论坛去搜索一下吧N多 N多。我就是随便找的一个。
现在已经成功用E语言 API 登录上ROS了 剩下的基本就是 如鱼得水了,
分享点我 觉得有点用的 API 吧,就这几个代码我居然用了1天多才研究出来~~~~
禁用ether5
/interface/ethernet/disable
=numbers=ether5
得到ether5 的ID
/interface/ethernet/print
?=name=ether5
=.proplist=.id
禁用ID
Then use returned id to disable
/interface/ethernet/disable
=.id=<returned_id>
获取WAN网卡流量
/interface/monitor-traffic
=interface=wan
=once
获取列表ID
/queue/simple/find
where=target-addresses
获取ID详情
/queue/simple/get
=number=hmy
=value-name=rate
下面的是源码不是“大力丸”
这个是E语言的源码,这个就是用来测试用的,根据自己的情况修改吧。 编毛啊,这跟API有关系吗,我晕,还好不是收费贴,要不真想。。。。 persist86 发表于 2013-1-28 20:25 static/image/common/back.gif
编毛啊,这跟API有关系吗,我晕,还好不是收费贴,要不真想。。。。
还没写到 API那里去我吃饭去了 :L无语,5分钟调整一次限速?等你没调整的时候就卡了。1分钟调整一次?还是不够快,要不再快点?CPU又顶不住了。这么不合理的方案亏你想得出来。 http://www.cat-home.org/?action=show&id=93
这里有我写的API查看网卡和QUEUE TREE列队流量的软件,免费的,如果就这么简单的东西就收费,那钱也太好赚了吧。 9939781 发表于 2013-1-28 21:53 static/image/common/back.gif
无语,5分钟调整一次限速?等你没调整的时候就卡了。1分钟调整一次?还是不够快,要不再快点?CPU又顶不住 ...
你当真看了我的源码? 认真看了?首先我的 降速用的 流量监控 里面的,所以降速是触发,提升速度是用的 时钟 然后判断是否需要提速。其次我的脚本就算你1秒执行一次 CPU最多也就3%。 9939781 发表于 2013-1-28 21:56 static/image/common/back.gif
http://www.cat-home.org/?action=show&id=93
这里有我写的API查看网卡和QUEUE TREE列队流量的软件,免费的 ...
看样子你是老人了?为? 你哪个东西是EXE的,我的是源码。 也许对于你来说简单,但我用了1个通宵才研究出来登录,奇怪的是我在网络上搜索了一晚上居然没有一个这样的源码。 9939781 发表于 2013-1-28 21:56 static/image/common/back.gif
http://www.cat-home.org/?action=show&id=93
这里有我写的API查看网卡和QUEUE TREE列队流量的软件,免费的 ...
请问你的软件是用什么语言来写的,很象你写的软件很少被杀毒软件勿杀,而E语言写出来的软件,基本都会被勿杀,所以想问下你用什么语言写的,谢谢 本帖最后由 9939781 于 2013-1-28 23:31 编辑
persist86 发表于 2013-1-28 22:23 static/image/common/back.gif
请问你的软件是用什么语言来写的,很象你写的软件很少被杀毒软件勿杀,而E语言写出来的软件,基本都会被勿 ...
我用VS6写的。E语言写的东西编译出的EXE大不说,还占不少内存,容易被杀。 本帖最后由 9939781 于 2013-1-28 23:32 编辑
hmy100 发表于 2013-1-28 22:05 static/image/common/back.gif
你当真看了我的源码? 认真看了?首先我的 降速用的 流量监控 里面的,所以降速是触发,提升速度是用的 ...
纯粹只是为了监控流量才修改限速不需要任何外接程序,直接用脚本监控就能完成。我有有写好的现成的,不过很久没用了。反复修改限速规则会导致BUG最终掉线重启。
http://www.cat-home.org/?action=show&id=16
这个问题早在2010年我就提出来了。这个功能的脚本也是一样。当然不排除可能4X,5X已经解决了这个BUG,反正我已经不用这个脚本很久了,出了BUG伤不起。 9939781 发表于 2013-1-28 23:27 static/image/common/back.gif
纯粹只是为了监控流量才修改限速不需要任何外接程序,直接用脚本监控就能完成。我有有写好的现成的,不 ...
你不说我还根本不知道,网络上我搜索了很多关于限速我就不明白为什么不这样限制,原来有内存问题,我的好好测试这可是一个大问题。谢谢你. 易语言啊,看着其实挺头晕的。虽我的母语是中文。不习惯,呵呵 原来一直用TELNET 来实现操作的API需要 希望更多些这些交流
页:
[1]
2