精华内容
下载资源
问答
  • 自制云端脚本获取器

    2011-10-27 21:27:07
    自制云端脚本获取器 喜欢的可以下载试试 就是玩的东西 是html代码 根据云端专用地址没经过加密原理制成,stp://->name=……………… 之后家lva就可以,
  • 云端脚本启动项目

    2021-06-17 14:06:51
    1、application.yml ...2、脚本(deploy.sh) nohup java -jar xxx.jar --spring.config.addition-location=/x/x/application.properties 3、启动项目 ./deploy.sh 4、可能报错 chmod -R 777 * --权限问题

    为什么要脚本启动?

    自定义启动方式
    当你打成jar包上传服务器时,如果想改个端口怎么办?最笨的办法就是改后端代码然后重启打包,这很麻烦。
    但如果你用脚本启动,就可以随心所欲地发布,想改端口就改端口,还可以修改堆栈配置等一些列参数

    1、编写你的application.yml

    在这里插入代码片
    

    2、脚本(deploy.sh)

    nohup java -jar xxx.jar --spring.config.addition-location=/x/x/application.properties

    vim 输入脚本,但后期:wq会出现 no file name,怎么办?
    :wq filename,比如说 :wq deploy.sh
    或则touch deploy.sh先创建一个文件
    注意:mkdir是创建文件夹;touch 是创建一个文件

    3、启动项目

    ./deploy.sh
    

    4、可能报错

    chmod -R 777 *   --权限问题
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 云端缓存垃圾清理脚本(HTA界面版)有全新的2.0界面,是一个HTML Application脚本,解决了云端1.0beta2 0420/0421版本兼容性问题。 全新的图像界面版本 向导式操作 有强大的自定义功能 保留生成的脚本多次使用 请...
  • 为了避免启动服务后,关闭终端导致服务停止,我们采用依赖脚本处理deploy.sh进行处理。 nohup java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar 包名.jar --spring.config.addition-location=...

    动态修改jar包配置

    进行服务器jar包启动时,有时候我们会动态的修改application.properties的配置属性,这时候有两种方法:

    • 直接在打包前的本地工程内部进行修改
    • 外挂配置文件:在服务器jar包的同级目录创建一个application.properties文件,内部写入自己的二次配置,使用命令:java -jar 包名.jar --spring.config.addition-location=application.properties文件路径

    为了避免启动服务后,关闭终端导致服务停止,我们采用依赖脚本处理deploy.sh进行处理。

    nohup java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar 包名.jar --spring.config.addition-location=application.properties文件路径
    

    当前deploy.sh文件目录下,chmod -R 777 * 修改可执行权限,然后启动脚本./deploy.sh &
    执行完会提示:“nohup:忽略输入并把输出追加到 nohup.out”,可以使用tail -200f ./nohup.out 查看服务启动的日志输出

    • nohup:LINUX命令用法,不挂断地运行命令
    • -Xms400m:初始jvm堆栈大小
    • -Xmx400m:最大jvm堆栈大小
    • -XX:NewSize=200m:初始jvm新生代大小
    • -XX:MaxNewSize=200m:最大新生代大小
    java -jar XXX.jar &
    
    1. 命令结尾没有 “&” ,则变成 “java -jar XXX.jar ” ,表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口,则程序直接退出
    2. 命令结尾添加 “&” ,则变成 “java -jar XXX.jar &” ,表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。
    nohup java -jar XXX.jar > Log.log & 
    或者
    nohup java -jar XXX.jar >> Log.log &
    
    • 命令 “nohup java -jar XXX.jar &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中。
    • 命令 “nohup java -jar XXX.jar > Log.log &” 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并且该作业的所有输出被重定向到Log.log的文件中。“ > Log.log ” 该命令就是指定日志输出的文件。
    • ">>"表示将输出以追加的方式重定向到Log.log中。
    nohup java -jar XXX.jar > Log.log 2>&1 & 
    或者
    nohup java -jar XXX.jar >> Log.log 2>&1 & 
    或者
    nohup java -jar XXX.jar > /dev/null 2>&1 & 
    
    • 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
    • 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
    • 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
    • 屏蔽输出,起到禁止输出作用:/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
    • “> Log.log 2>&1” :表示将 stdout 和 stderr 合并后重定向到 Log.log


    输出之后,可以使用“jobs”查看一下后台运行的任务。

    展开全文
  • 脚本获取云端的账号数据,获取后即时标记或删除 。 对应管理数据的网站: http://121.43.41.227:151/ 只要支持post的脚本理论都可以对接。
  • 阿里云物联网云端开发之脚本解析

    千次阅读 2019-02-26 19:14:22
    二、在物联网平台中创建一个高级版...这里困扰了我好多天,设备端上传得报文(01034042140000)是以字符串的形式传过来的,脚本解析接收的是十六进制数据,因此将报文(01034042140000)转变成了对应的十六进制数(3...

    一、注册阿里云账号登录物联网平台(过程省略)
    二、在物联网平台中创建一个高级版透传格式产品
    点击创建产品
    选择高级版
    在创建产品时,选择透传/自定义数据格式
    三、为产品添加一个设备(过程根据阿里云文档自行创建)
    四、为产品添加功能,如下
    为产品添加功能
    五、根据报文内容编写脚本
    这里困扰了我好多天,设备端上传得报文(01034042140000)是以字符串的形式传过来的,脚本解析接收的是十六进制数据,因此将报文(01034042140000)转变成了对应的十六进制数(3031303334303432313430303030)。脚本解析的时候本是对十六进制数为(01034042140000)的数据进行解析,而现在却对(3031303334303432313430303030)这些数据进行解析了。现在脚本需要做的是将十六进制(3031303334303432313430303030)转变为十六进制(01034042140000),在对(01034042140000)进行解析。而将十六进制(3031303334303432313430303030)转变为十六进制(01034042140000)的过程我实现不了。所以最后的解析结果虽然没有报错,但物模型数据是不正确的。过程不在叙述,全在代码里。

    var COMMAND_REPORT = 0x01;
    var COMMAND_SET = 0x01; //属性设置
    var COMMAND_REPORT_REPLY = 0x02; //上报数据返回结果
    var COMMAND_SET_REPLY = 0x03; //属性设置设备返回结果
    var COMMAD_UNKOWN = 0xff;    //未知的命令
    var ALINK_PROP_REPORT_METHOD = 'thing.event.property.post'; //标准ALink JSON格式topic, 设备上传属性数据到云端
    var ALINK_PROP_SET_METHOD = 'thing.service.property.set'; //标准ALink JSON格式topic, 云端下发属性控制指令到设备端
    var ALINK_PROP_SET_REPLY_METHOD = 'thing.service.property.set'; //标准ALink JSON格式topic, 设备上报属性设置的结果到云端
    //上行数据,自定义二进制转物模型json
    function rawDataToProtocol(bytes) {
         var tstr=[];
        for (var i = 0; i < bytes.length; i++) {
            tstr += String.fromCharCode(parseInt(bytes[i], 10))
        } 
        //tstr=parseInt(tstr,10);
        var uint8Array = new Uint8Array(tstr.length);
         for (var i = 0; i <tstr.length; i++) {
            uint8Array[i] = parseInt(tstr.substr(2*i, 2), 16) & 0xff;
        }
        var dataView = new DataView(uint8Array.buffer, 0);
    
        var jsonMap = new Object();
    
        var fHead = uint8Array[0]; // command
        if (fHead == COMMAND_REPORT) {
            //属性上报method
            jsonMap['method'] = ALINK_PROP_REPORT_METHOD;
            //协议版本号固定字段
            jsonMap['version'] = '1.0';
            //标示该次请求id值
           jsonMap['id'] =dataView.getInt32(1);
            var params = {};
            //对应产品属性中 temperature
           params['temperature'] = dataView.getFloat32(3);
            //对应产品属性中 humidity
            params['humidity'] = dataView.getFloat32(7);
    
            jsonMap['params'] = params;
        }
    
        return jsonMap;
    }
    //下行指令,物模型json转二进制格式
    function protocolToRawData(json) {
        var method = json['method'];
        var id = json['id'];
        var version = json['version'];
        var payloadArray = [];
        if (method == ALINK_PROP_SET_METHOD) // 属性设置
        {
            var params = json['params'];
           // var prop_float = params['prop_float'];
            var prop_int16 = params['prop_int16'];
            //var prop_bool = params['prop_bool'];
            //按照自定义协议格式拼接 rawData
            payloadArray = payloadArray.concat(buffer_uint8(COMMAND_SET)); // command字段
            payloadArray = payloadArray.concat(buffer_int32(parseInt(id))); // ALink JSON格式 'id'
            payloadArray = payloadArray.concat(buffer_int16(prop_int16)); // 属性'prop_int16'的值
          // payloadArray = payloadArray.concat(buffer_uint8(prop_bool)); // 属性'prop_bool'的值
           // payloadArray = payloadArray.concat(buffer_float32(prop_float)); // 属性'prop_float'的值
        } else if (method ==  ALINK_PROP_REPORT_METHOD) { //设备上报数据返回结果
            var code = json['code'];
            payloadArray = payloadArray.concat(buffer_uint8(COMMAND_REPORT_REPLY)); //command字段
            payloadArray = payloadArray.concat(buffer_int32(parseInt(id))); // ALink JSON格式 'id'
            payloadArray = payloadArray.concat(buffer_uint8(code));
        } else { //未知命令,对于有些命令不做处理
            var code = json['code'];
            payloadArray = payloadArray.concat(buffer_uint8(COMMAD_UNKOWN)); //command字段
            payloadArray = payloadArray.concat(buffer_int32(parseInt(id))); // ALink JSON格式 'id'
            payloadArray = payloadArray.concat(buffer_uint8(code));
        }
        return payloadArray;
    }
    //以下是部分辅助函数
    function buffer_uint8(value) {
        var uint8Array = new Uint8Array(1);
        var dv = new DataView(uint8Array.buffer, 0);
        dv.setUint8(0, value);
        return [].slice.call(uint8Array);
    }
    function buffer_int16(value) {
        var uint8Array = new Uint8Array(2);
        var dv = new DataView(uint8Array.buffer, 0);
        dv.setInt16(0, value);
        return [].slice.call(uint8Array);
    }
    function buffer_int32(value) {
        var uint8Array = new Uint8Array(4);
        var dv = new DataView(uint8Array.buffer, 0);
        dv.setInt32(0, value);
        return [].slice.call(uint8Array);
    }
    function buffer_float32(value) {
        var uint8Array = new Uint8Array(4);
        var dv = new DataView(uint8Array.buffer, 0);
        dv.setFloat32(0, value);
        return [].slice.call(uint8Array);
    }
    

    五、运行结果
    在这里插入图片描述
    在这里插入图片描述
    最后如果大家有什么疑问,都会尽力解答。

    展开全文
  • Google云端硬盘上载“工作程序”脚本,可从Redis集中弹出文件路径,并通过PyDrive上载至Google云端硬盘。 有关身份验证说明,请参见 。
  • 尾码:AB AB 参数说明: 01 03 01 01 03 00 第一个和第二位:协议头判断 第三位:空气温度 第四位 ~ 第五位 :截取位置 从第1个截取到第三个 第六位 :是否进行数据放大,01为 0.1倍 02 为 0.01倍 采集 脚本 -- @...

    展示内容

     

    动态参数确定协议 

    协议内容:
    
    1.协议头:AB AB 
    2.后32位为设备ID:262044017068AAAA
    3.后2位使用背景(场景ID): 00( OEM ) ,02 (中天) 
    4.后2位置代表有几个传感器:08
    5.传感器参数
    6.尾码:AB AB
    参数说明:
    
    01 03 01 01 03 00 
    第一个和第二位:协议头判断
    第三位:空气温度 
    第四位 ~ 第五位 :截取位置 从第1个截取到第三个
    第六位 :是否进行数据放大,01为 0.1倍  02 为 0.01倍

     

    采集 脚本

    -- @author qiyulin @date 2020.07.15 实现lua 采集物理网数据并展示
    --初始化函数
    function on_init()	
    	-- 设置串口的超时时间:  timeout 接受总超时,单位:毫秒, timeeout_inter  字节间隔超时,单位:毫秒
    	uart_set_timeout(1000,200)
    	-- 判断是否有缓存的协议
    	local len = read_flash_string(512)
    	if len ~= nil and len > 0 
    	then
    		print(" read flush 采集参数")
    	else
    		-- 初始化默认采集协议
    		-- AB AB 262044017068AAAA(设备id)  00( OEM背景) 04(4个值)   FE05(协议头) 01 01 02 01(空气温度)  FE05(协议头) 02030401(空气湿度)  FE05(协议头) 03050600(光照强度)  FE05(协议头) 04070800(二氧化碳) AB AB (尾码)
    		local packet = {} 
    		packet[0] = 0xAB
    		packet[1] = 0xAB
    		--设备id
    		packet[2] = 0x32
    		packet[3] = 0x36
    		packet[4] = 0x32
    		packet[5] = 0x30
    		packet[6] = 0x34
    		packet[7] = 0x34
    		packet[8] = 0x30
    		packet[9] = 0x31
    		packet[10] = 0x37
    		packet[11] = 0x30
    		packet[12] = 0x36
    		packet[13] = 0x38
    		packet[14] = 0x41
    		packet[15] = 0x41
    		packet[16] = 0x41
    		packet[17] = 0x41	
    		-- 背景屏幕
    		packet[18] = 0x02
    		-- 传感器数量
    		packet[19] = 0x04
    		-- 空气温度
    		packet[20] = 0x01
    		packet[21] = 0x03
    		packet[22] = 0x01
    		packet[23] = 0x05
    		packet[24] = 0x06
    		packet[25] = 0x01
    		-- 空气湿度
    		packet[26] = 0x01
    		packet[27] = 0x03
    		packet[28] = 0x02
    		packet[29] = 0x03
    		packet[30] = 0x04
    		packet[31] = 0x01
    	    -- 光照强度
    	    packet[32] = 0x01
    		packet[33] = 0x03
    		packet[34] = 0x03
    		packet[35] = 0x13
    		packet[36] = 0x15
    		packet[37] = 0x00
    		-- 二氧化碳
    	    packet[38] = 0x01
    		packet[39] = 0x03
    		packet[40] = 0x04
    		packet[41] = 0x0b
    		packet[42] = 0x0c
    		packet[43] = 0x00
    		-- 结束码
    		packet[44] = 0xAB
    		packet[45] = 0xAB	
    		-- count
    		local leng = 0
    		for i,v in ipairs(packet) do
    			leng = leng+1
    	    end
    		
    		-- 写入缓存	
    	    write_flash_string(512,leng);	
    		write_flash(0,packet);
    	 	print("写入默认参数完成->"..leng)
    	end
    end
    
    --设置全局变量uart_free_protocol,使用自由串口协议
    uart_free_protocol=1
    
    -- 调用uart_send_data后收到的内容
    function on_uart_recv_data(packet)
    	-- 获取packet 的大小
    	local leng = 0
    	for k,v in pairs(packet) do
    		print(k.."->"..v)
     		leng = leng+1	
    	end
    	print("receive leng->"..leng)
    	--获取屏幕编号
    	local sc=get_current_screen()
    	print("current screen->"..sc)
    	
    	-- 判断wifi是否连接成功 ,有返回值则返回48 
    	if leng==2
    	then
    		print("wifi connect")
    		set_visiable(sc,3,0) 
    	end
    	
    	-- 判断是否为 AB AB 协议
    	if packet[0]==0xAB and packet[1]==0xAB		
    	then
    		
    		-- 把云端发送过来的参数内容写到flash
    		write_flash_string(512,leng);	
    		write_flash(0,packet);
    	 	print("写入云端参数完成,等待生效->"..leng)
    		
     	-- 读取北斗定位内容 01 03 46 24 47 4E 52 4D 43 2C 	
    	elseif packet[0]==0x01 and packet[1]==0x03 and packet[2]==0x46 and packet[3]==0x24 and packet[4]==0x47 and packet[5]==0x4E and packet[6]==0x52 and packet[7]==0x4D and packet[8]==0x43 and packet[9]==0x2C
    	then
    		print("有北斗定位")
    		-- 判断获取是否成功
    		if packet[19]==0x2C and packet[20]==0x41 and packet[21]==0x2C
    		then
    			print("正解析定位值")
    			-- 获取纬度
    			local lats = string.char(packet[22]).. string.char(packet[23])
    			local late = string.char(packet[24]).. string.char(packet[25]).. string.char(packet[26]).. string.char(packet[27]).. string.char(packet[28]).. string.char(packet[29]).. string.char(packet[30]).. string.char(packet[31])
    			local latxs = string.format("%0.4f",tonumber(late)/60)		
    			local lat = tonumber(lats)+tonumber(latxs)
    			-- 获取纬度(N,S)
    			local ns = string.char(packet[33])
    			--获取经度
    			local lngs = string.char(packet[35]).. string.char(packet[36]).. string.char(packet[37])
    			local lnge = string.char(packet[38]).. string.char(packet[39]).. string.char(packet[40]).. string.char(packet[41]).. string.char(packet[42]).. string.char(packet[43]).. string.char(packet[44]).. string.char(packet[45])
    			local lngxs = string.format("%0.4f",tonumber(lnge)/60)
    			local lng = tonumber(lngs)+tonumber(lngxs)
    			-- 获取经度(E,W)
    			local  ew = string.char(packet[47])
    			-- 设置到组件
    			set_text(sc,7,"北斗定位:"..lat.." ( "..ns.." ) ,"..lng.." ( "..ew.." ) ")
    		end
    
    	else
    	
    		-- 根据广播内容获取数据内容
    		local leng = read_flash_string(512)
    		local data = read_flash(0,leng)
    		if data[0]==0xAB and data[1]==0xAB
    		then
    			-- 判断有几个参数
    			local mynum = data[19]
    			-- 判断参数内容
    			for q=1,mynum do	
    				local qindex=20+(q-1)*6				
    				local myx1 = data[qindex]
    				local myx2 = data[qindex+1]
    				
    				---获取数值单位
    				local myunit = get_unit_label(mytype,true)
    				-- 比较 packet 数据包
    				if  packet[0]==myx1 and packet[1]==myx2
    				then
    					local mytype = data[qindex+2]
    					local mystart = data[qindex+3]
    					local myend = data[qindex+4]
    					local myxs = data[qindex+5]
    					print(qindex+5)
    					local myno1 = 100+q
    		 			print("参数: x1: "..myx1..",x2:"..myx2..",type->"..mytype..",start->"..mystart..",end->"..myend..",myxs->"..myxs)	
    					local myunit = get_unit_label(mytype,false)
    					local mynumstr = "0.0"
    					local mynum=0
    					-- 遍历变量
    					local cha = myend - mystart
    					if cha==0
    					then
    						mynum = packet[mystart] 
    					elseif cha==1 
    					then 
    						mynum = packet[mystart]*256 + packet[myend] 
    					elseif cha==2 
    					then 
    						mynum = packet[mystart]*256*256 + packet[mystart+1]*256 + packet[myend] 
    					elseif cha==3 
    					then 
    						mynum = packet[mystart]*256*256*256 + packet[mystart+1]*256*256 + packet[mystart+2]*256 + packet[myend] 
    					end
    					--判断是否需要缩小				
    					if myxs==0x01
    					then
    						mynumstr = string.format("%0.1f",mynum/10)	
    	 				elseif myxs==0x02
    					then
    						mynumstr = string.format("%0.2f",mynum/100)	
    					else 
    						mynumstr = mynum
    					end
    					-- 对风向进行特殊处理
    					if mytype == 0x08 
    					then
    						mynumstr = get_fx(mynum)
    						set_text(sc,myno1,mynumstr)
    					else
    	 					set_text(sc,myno1,mynumstr..myunit)	
    					end
    				end
    				
    			end
    			print("init item text ok!")
    	
    		end		
    
    	end
    
    end
    
    --记录开机几秒了
    init_system_second = 1
    
    -- 根据风向值获取风向文字
    function get_fx(mynum)
    	if mynum ==0x00
    	then
    		return "东北偏北"
    	elseif mynum==0x01
    	then
    		return "东北"
    	elseif mynum==0x02
    	then
    		return "东北偏东"
    	elseif mynum==0x03
    	then
    		return "正东"
    	elseif mynum==0x04
    	then
    		return "东南偏东"	
    	elseif mynum==0x05
    	then
    		return "东南"	
    	elseif mynum==0x06
    	then
    		return "东南偏南"	
    	elseif mynum==0x07
    	then
    		return "正南"		
    	elseif mynum==0x08
    	then
    		return "西南偏南"	
    	elseif mynum==0x09
    	then
    		return "西南"		
    	elseif mynum==0x0a
    	then
    		return "西南偏西"		
    	elseif mynum==0x0b	
    	then
    		return "正西"		
    	elseif mynum==0x0c
    	 then
    		return "西北偏西"		
    	elseif mynum==0x0d
    	then
    		return "西北"		
    	elseif mynum==0x0e
    	then
    		return "西北偏北"			
    	elseif mynum==0x0f
    	then
    		return "正北"		
    	end
    	
    end
    
    -- 根据类型获取unit或者label
    function get_unit_label(mytype,isL)
    if mytype==0x01 
    then
    	if isL 
    	then 
    		return "空气温度" 
    	else
    		return "℃"
    	end
    end
    
    if mytype==0x02
    then
    	if isL 
    	then 
    		return "空气湿度" 
    	else
    		return "%"
    	end
    end
    
    if mytype==0x03
    then
    	if isL 
    	then 
    		return "光照强度" 
    	else
    		return "Lux"
    	end
    end	
    
    if mytype==0x04
    then
    	if isL 
    	then 
    		return "二氧化碳" 
    	else
    		return "ppm"
    	end
    end	
    
    if mytype==0x05
    then
    	if isL 
    	then 
    		return "PH值" 
    	else
    		return ""
    	end
    end
    
    if mytype==0x06
    then
    	if isL 
    	then 
    		return "电导率" 
    	else
    		return "us/cm"
    	end
    end	
    
    if mytype==0x07
    then
    	if isL 
    	then 
    		return "风速" 
    	else
    		return "m/s"
    	end
    end	
    
    if mytype==0x08
    then
    	if isL 
    	then 
    		return "风向" 
    	else
    		return ""
    	end
    end
    			
    if mytype==0x08
    then
    	if isL 
    	then 
    		return "风向" 
    	else
    		return ""
    	end
    end	
    
    if mytype==0x09
    then
    	if isL 
    	then 
    		return "气压" 
    	else
    		return "hpa"
    	end
    end	
    
    if mytype==0x0a
    then
    	if isL 
    	then 
    		return "雨量" 
    	else
    		return "mm/h"
    	end
    end	
    
    if mytype==0x0b
    then
    	if isL 
    	then 
    		return "紫外线强度" 
    	else
    		return "w/㎡"
    	end
    end	
    
    if mytype==0x0c
    then
    	if isL 
    	then 
    		return "光合强度" 
    	else
    		return "w/㎡"
    	end
    end	
    
    if mytype==0x0d
    then
    	if isL 
    	then 
    		return "露点温度" 
    	else
    		return "℃"
    	end
    end	
    
    if mytype==0x0e
    then
    	if isL 
    	then 
    		return "土壤温度" 
    	else
    		return "℃"
    	end
    end	
    
    if mytype==0x0f
    then
    	if isL 
    	then 
    		return "土壤湿度" 
    	else
    		return "%"
    	end
    end	
    
    if mytype==0x10
    then
    	if isL 
    	then 
    		return "土壤温度2" 
    	else
    		return "℃"
    	end
    end	
    
    if mytype==0x11
    then
    	if isL 
    	then 
    		return "土壤温度3" 
    	else
    		return "℃"
    	end
    end	
    
    if mytype==0x12
    then
    	if isL 
    	then 
    		return "土壤温度4" 
    	else
    		return "℃"
    	end
    end	
    
    if mytype==0x13
    then
    	if isL 
    	then 
    		return "土壤湿度2" 
    	else
    		return "%"
    	end
    end	
    
    if mytype==0x14
    then
    	if isL 
    	then 
    		return "土壤湿度3" 
    	else
    		return "%"
    	end
    end	
    
    if mytype==0x15
    then
    	if isL 
    	then 
    		return "土壤湿度4" 
    	else
    		return "%"
    	end
    end	
    
    if mytype==0x16
    then
    	if isL 
    	then 
    		return "电导率2" 
    	else
    		return "us/cm"
    	end
    end	
    
    if mytype==0x17
    then
    	if isL 
    	then 
    		return "电导率3" 
    	else
    		return "us/cm"
    	end
    end	
    
    if mytype==0x18
    then
    	if isL 
    	then 
    		return "电导率4" 
    	else
    		return "us/cm"
    	end
    end	
    
    end
    
    --定时回调函数,系统每隔1秒钟自动调用。
    function on_systick()
    	print(init_system_second)
    	if init_system_second ==5 or init_system_second==59
    	then
    		
    		--获取屏幕编号
    		local sc=get_current_screen()
    				
    		--获取缓存协议
    		local leng = read_flash_string(512)
    		local packet = read_flash(0,leng)
    		-- 判断是否为控制协议
    		if packet[0]==0xAB and packet[1]==0xAB
    		then
    			--切换背景
    			local mybg = packet[18]
    				print("切换背景->"..mybg)	
    			if sc==mybg
    			then
    			--是一个背景不需要切换
    			else
    				change_screen(mybg)
    			end
    			
    			-- 设置二维码内容
    			local mydid = get_text(mybg,4)
    			if mydid == "AA" 
    			then
    				local did = ""
    				for i= 2, 17 do
    				   did = did..string.char(packet[i])
    				end
    				print("set qrcode ok")
    				set_text(mybg,4,did)
    			end
    			-- 判断有几个参数
    			local mynum = packet[19]
    			for z= 0, 12 do
    					 local myk3 = 301+z
    				 local myk2 = 201+z
    				 local myk1 = 101+z	
    				 if z< mynum
    				 then
    				 	set_visiable(mybg,myk1,1)
    	 				set_visiable(mybg,myk2,1)
    					set_visiable(mybg,myk3,1) 
    				 else
     					 set_visiable(mybg,myk1,0)
    		 			 set_visiable(mybg,myk2,0)
    					 set_visiable(mybg,myk3,0)  
    				 end
    			end	
     			print("init item ok!")	
    			-- 判断参数内容
    			for q=1,mynum do	
    				local qindex=22+(q-1)*6				
    				local mytype = packet[qindex]				
    				---判断内容
    				local mylabel = get_unit_label(mytype,true)				
    				print("type->"..mytype..",label->"..mylabel)
    		
    				local myno2 = 200+q;
    				set_text(mybg,myno2,mylabel)
    			end
    			print("init item text ok!")
    			
    		end	
    		
    		-- 重置记时
    		init_system_second=6
    	end 
    
    	-- 记时
    	
    	init_system_second=init_system_second+1	
    
    end
    

    网盘地址:https://pan.baidu.com/s/1xg6RTwkk3CHbZ9QEapySxA

    提取码:zjjd

    感谢您的支持,如对您有所帮助,请您打赏,谢谢啦~

    展开全文
  • 能随时操作,设置好后能够云端运行 远程操作界面截图: 功能: 红手指云手机功能: 1、24h挂机,免root 2、内置多个辅助工具 3、配合龙门神途脚本,能自动刷 工具分享:...
  • 一、前情提要 Auto.js与按键精灵功能类似 但更加强大,比如控件操作 ,...1.脚本发送get、post请求给“中转站”, 2.“中转站”分析请求 再链接数据库做对应读写操作, 3.最后原路返回结果。 中转站可以是任...
  • gcloud_scripts:适用于Google云端技术(例如bigquery googlesheets)的python脚本
  • 脚本自述文件 这是我的配置,对于我在一个多介质服务器中的用例而言,它最适合我。 这绝不意味着要作为教程,因为它确实需要一些知识才能进行设置。 我很乐意为您提供最大的帮助,并欢迎进行任何更新/修复/拉动以使...
  • 这是用于在Google云端硬盘上复制文件夹的Google Apps脚本库。 描述 有时候,我需要将Google云端硬盘上的文件夹备份到Google云端硬盘。 但不幸的是,类文件的方法和的方法 Drive API的不能用于直接在Google云端硬盘上...
  • 分享个驭灵师辅助脚本,能够挂游戏薅羊毛的云端安卓模拟器 驭灵师里有很多活动,有一些活动的难度不大属于日常性开放的活动,这样的活动资源丰富,不得不刷。但是每天固定刷简单重复的任务也很无聊,此时可以用一些...
  • 使用Python脚本将文件上传到Google云端硬盘 安装Windows / Python3.5: 证书 要获取凭据并激活Drive API,请执行以下详细步骤: : 下载“ client_secret_XXXXXXXXXXX.json”文件后,将其重命名为“ client_secret....
  • 一个Python脚本,可自动将您的Google云端硬盘内容与本地存储文件同步。 它可以做什么(目前) 将文件夹及其所有内容从本地存储上传到Google云端硬盘 使用(相同)Google云端硬盘文件夹检查并同步本地存储上的更改 ...
  • FilesApp是一个GAS库,用于使用Google Apps脚本(GAS)检索Google云端硬盘中的文件和文件夹列表。 此外,这还可以根据自己的Google云端硬盘和共享云端硬盘中的所有文件和文件夹创建树。 描述 当我使用Google云端硬盘...
  • 脚本调用API获取账号后 该数据自动进入已读页 2.账号类别右击可进行新增和删除,删除时如果该类别旗下有账号数据 会自动转入无主类别。 3.未读页同样显示账号类别 和 对应已获取过的账号数据 可用txt导出 4.设置...
  • 适用于Google云端硬盘的简单GAS工具 我在这里重用了适合我需要的代码: : 。 不同之处在于这可行。 最初,我未经修改就无法使其正常工作。 在这里可以找到: 分别或递归更改所有权和复制文件或文件夹的功能。 用于...
  • apps-script-multi-file-upload Apps脚本,使匿名用户可以将多个文件上传到Google云端硬盘。
  • 简单的脚本,用于将Google云端硬盘中的CSV(逗号分隔值)文件导入并重新映射到电子表格中。 该脚本适用于Tiller Money电子表格,但不是由Tiller Money创建,发布或维护的。 它能做什么 该脚本执行以下操作: 请求...
  • 这是一个示例脚本,用于通过一次性下载方法从Google云端硬盘下载文件。 描述 通常,当您从Google云端硬盘下载文件时,需要登录名和访问令牌。 如果您想在未经授权的情况下下载文件,则需要公开共享该文件。 但是由于...
  • DownloadLargeFilesByUrl是一个GAS库,用于使用Google Apps脚本(GAS)从URL将大文件下载到Google云端硬盘。 描述 我一直在考虑是否可以使用GAS将网址中的大文件下载到Google云端硬盘。 当我尝试下载如此大的文件时...
  • NodeJS脚本,用于直接从FShare.vn上载到Google云端硬盘,而无需在本地存储文件。 有关不推荐使用的bash脚本(download.sh和login.sh),请参见。 特征 通过管道将文件上传到GDrive,而无需在本地存储文件。 无需...
  • 过滤云端硬盘的API列表 打开Drive API(单击“ OFF按钮) 关闭Google Developer Console标签 点击Google Apps脚本高级服务按钮上的确定。 管理版本(文件\管理版本...)以创建一个新版本 输入一个名称(例如...
  • Apps脚本库,用于将Google Drive文件夹与卓越的云存储进行同步。 保留在Remarkable的云存储中的文件会自动与您的Remarkable设备同步。 感谢splitbrain,他进行了。 安装 转到 ,然后单击“新项目”。 在菜单...
  • 在本教程中,我们将说明如何将Cloud Function与Google Apps脚本一起使用以获取大文件,将其保存到Google云端硬盘,并返回可在脚本项目的其余部分中使用的文件ID。 重要说明:在本教程中,因为我们使用云功能来发
  • 反正各种实用,总之就是模拟人工,解放双手拉!快拉下去看看吧! 本期推荐 ...运行平台:安卓端 软件简介:一键模拟...我们进入软件后,文章看不明白可以先点击教程可以查看详细视频教程,点击应用市场可以查看云端脚本!.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,448
精华内容 4,579
关键字:

云端脚本