1 Star 4 Fork 0

fireknight/MODBUSLIB

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
ModBusCommand_YOUREN.as 4.07 KB
一键复制 编辑 原始数据 按行查看 历史
fireknight 提交于 2019-10-15 16:35 +08:00 . 有人科技的modebus协议
package
{
import flash.utils.ByteArray;
import utils.NumberTool;
public class ModBusCommand_YOUREN
{
private static const end:String="ACAC";
public static const ask:String="01";
private static const control:String="05";
public static const open:String="FF";
public static const close:String="00";
private static const mutileControl:String="0F";
public function ModBusCommand_YOUREN()
{
}
private static function makeDeviceID(id:uint):String
{
//输出设备ID
var str:String=id.toString(16);
str=NumberTool.fullZeroWidthPosition(str,2,"l");
return str;
}
private static function makeAddress(id:uint):String
{
//输出继电器地址
var str:String=id.toString(16);
str=NumberTool.fullZeroWidthPosition(str,4,"l");
return str;
}
public static function openOneToString(deviceId:uint,id:uint):String
{
//打开一个继电器
var str:String=makeDeviceID(deviceId)+control+makeAddress(id)+open+"00"+end;
return str;
}
public static function closeOneToString(deviceId:uint,id:uint):String
{
//打开一个继电器
var str:String=makeDeviceID(deviceId)+control+makeAddress(id)+close+"00"+end;
return str;
}
public static function openOne(deviceId:uint,id:uint):ByteArray
{
//打开一个继电器
var str:String=makeDeviceID(deviceId)+control+makeAddress(id)+open+"00"+end;
trace("对设备"+deviceId+"的第"+(id+1)+"个继电器执行打开指令");
return NumberTool.hexToByteArray(str);
}
public static function closeOne(deviceId:uint,id:uint):ByteArray
{
//关闭一个继电器
var str:String=makeDeviceID(deviceId)+control+makeAddress(id)+close+"00"+end;
trace("对设备"+deviceId+"的第"+(id+1)+"个继电器执行关闭指令");
return NumberTool.hexToByteArray(str);
}
public static function controlMutileToString(diviceId:uint,startId:uint,length:uint,operate:String):String
{
var str:String=makeDeviceID(diviceId)+mutileControl+makeAddress(startId)+NumberTool.fullZeroWidthPosition(length.toString(16),4,"l")+"01"+NumberTool.fullZeroWidthPosition(NumberTool.twoTo16(operate),2,"l")+end;
trace("对设备"+diviceId+" 从设备ID为"+(startId+1)+"开始,连续"+length+"个继电器执行"+operate+"指令");
trace("指令转换为"+NumberTool.fullZeroWidthPosition(NumberTool.twoTo16(operate),2,"l"));
return str;
}
public static function controlMutile(diviceId:uint,startId:uint,length:uint,operate:String):ByteArray
{
//操作多个连续的继电器
var str:String=makeDeviceID(diviceId)+mutileControl+makeAddress(startId)+NumberTool.fullZeroWidthPosition(length.toString(16),4,"l")+"01"+NumberTool.fullZeroWidthPosition(NumberTool.twoTo16(operate),2,"l")+end;
trace("对设备"+diviceId+" 从设备ID为"+(startId+1)+"开始,连续"+length+"个继电器执行"+operate+"指令");
trace("指令转换为"+NumberTool.fullZeroWidthPosition(NumberTool.twoTo16(operate),2,"l"));
return NumberTool.hexToByteArray(str);
}
public static function openAllStr(devideId:uint):String
{
//打开所有的继电器
trace("对设备"+devideId+"的所有继电器执行打开指令");
var str:String=makeDeviceID(devideId)+mutileControl+makeAddress(0)+"000801FF"+end;
return str;
}
public static function openAll(diviceId:uint):ByteArray
{
//打开所有的继电器
trace("对设备"+diviceId+"的所有继电器执行打开指令");
var str:String=makeDeviceID(diviceId)+mutileControl+makeAddress(0)+"000801FF"+end;
return NumberTool.hexToByteArray(str);
}
public static function closeAllStr(devideId:uint):String
{
//关闭所有的继电器
trace("对设备"+devideId+"的所有继电器执行打开指令");
var str:String=makeDeviceID(devideId)+mutileControl+makeAddress(0)+"00080100"+end;
return str;
}
public static function closeAll(diviceId:uint):ByteArray
{
//关闭所有的继电器
trace("对设备"+diviceId+"的所有继电器执行关闭指令");
var str:String=makeDeviceID(diviceId)+mutileControl+makeAddress(0)+"00080100"+end;
return NumberTool.hexToByteArray(str);
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
ActionScript
1
https://gitee.com/fireknight/MODBUSLIB.git
git@gitee.com:fireknight/MODBUSLIB.git
fireknight
MODBUSLIB
MODBUSLIB
master

搜索帮助