easycwmp解读(1.2.0)-easycwmp脚本模块分析-概述

文件路径:

源码:ext/openwrt/scripts/
设备路径:

/usr/sbin/easycwmp
/usr/share/easycwmp/functions/

easycwmp脚本模块的文件说明:

源码目录设备目录说明
ext/openwrt/scripts/easycwmp.sh/usr/bin/easycwmp1.命令的入参处理 2.与系统接口的定义(uci,log目录)
ext/openwrt/scripts/functions/common/common/usr/share/easycwmp/functions/common1.操作方法的具体实现2.Json相关函数3.其他函数封装
ext/openwrt/scripts/functions/…/management_server/usr/share/easycwmp/functions/management_server数据模型ManagementServer相关节点定义,GET和SET方法实现
ext/openwrt/scripts/functions/…/device_info/usr/share/easycwmp/functions/device_info数据模型DeviceInfo相关节点定义,GET和SET方法实现
ext/openwrt/scripts/functions/…/lan_device/usr/share/easycwmp/functions/lan_device数据模型LANDevice相关节点定义,GET和SET方法实现

其他文件都是,相应的数据模型定义,ET和SET方法实现;如果要添加数据模型,添加相应的脚步即可。

easycwmp脚本模块的主要功能:

  1. 实现数据模型的构建
  2. 实现TR069的操作方法
getGET节点方法
setSET节点方法
apply未知-后期补充
add添加节点
delete删除节点
download下载操作
upload上传操作
factory_reset恢复出厂操作
reboot重启操作
informinform操作
  1. 输出Json格式的数据

GET Vaule操作-ALL:

easycwmp get
{ "parameter": "InternetGatewayDevice.DeviceInfo.SpecVersion", "value": "1.0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.ProvisioningCode", "value": "" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.Manufacturer", "value": "easycwmp" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.ManufacturerOUI", "value": "FFFFFF" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.ProductClass", "value": "easycwmp" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.SerialNumber", "value": "FFFFFF123456" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.HardwareVersion", "value": "example_hw_version" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.SoftwareVersion", "value": "example_sw_version" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.UpTime", "value": "152", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.DeviceLog", "value": "" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.MemoryStatus.Total", "value": "3934328" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.MemoryStatus.Free", "value": "3899292" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.DiagnosticsState", "value": "None" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.Host", "value": "" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.NumberOfRepetitions", "value": "3", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.Timeout", "value": "1000", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.DataBlockSize", "value": "64", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.SuccessCount", "value": "0", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.FailureCount", "value": "0", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.AverageResponseTime", "value": "0", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.MinimumResponseTime", "value": "0", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.MaximumResponseTime", "value": "0", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.ManagementServer.URL", "value": "http:\/\/192.168.1.110:8080\/openacs\/acs" }
{ "parameter": "InternetGatewayDevice.ManagementServer.Username", "value": "easycwmp" }
{ "parameter": "InternetGatewayDevice.ManagementServer.Password", "value": "" }
{ "parameter": "InternetGatewayDevice.ManagementServer.PeriodicInformEnable", "value": "1", "type": "xsd:boolean" }
{ "parameter": "InternetGatewayDevice.ManagementServer.PeriodicInformInterval", "value": "100", "type": "xsd:unsignedInt" }
{ "parameter": "InternetGatewayDevice.ManagementServer.PeriodicInformTime", "value": "0001-01-01T00:00:00Z", "type": "xsd:dateTime" }
{ "parameter": "InternetGatewayDevice.ManagementServer.ConnectionRequestURL", "value": "" }
{ "parameter": "InternetGatewayDevice.ManagementServer.ConnectionRequestUsername", "value": "easycwmp" }
{ "parameter": "InternetGatewayDevice.ManagementServer.ConnectionRequestPassword", "value": "" }
{ "parameter": "InternetGatewayDevice.ManagementServer.ParameterKey", "value": "" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ConnectionStatus", "value": "Connected" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", "value": "" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress", "value": "" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Enable", "value": "", "type": "xsd:boolean" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Username", "value": "" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Password", "value": "" }

GET Vaule 操作-ONE:

# easycwmp get InternetGatewayDevice.DeviceInfo.MemoryStatus.Total
{ "parameter": "InternetGatewayDevice.DeviceInfo.MemoryStatus.Total", "value": "3934328" }

GET Vaule操作-ERROR:

# easycwmp get InternetGatewayDevice.DeviceInfo.MemoryStatus.Tot
{ "parameter": "InternetGatewayDevice.DeviceInfo.MemoryStatus.Tot", "fault_code": "9005" }

GET Name操作-遍历当前节点下的所有的子节点

如果要获取整个数据模型的name使用命令easycwmp get name InternetGatewayDevice. 0

easycwmp get name InternetGatewayDevice.WANDevice. 0
{ "parameter": "InternetGatewayDevice.WANDevice.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ConnectionStatus", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.ExternalIPAddress", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.1.WANIPConnection.1.MACAddress", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Enable", "writable": "1" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Username", "writable": "1" }
{ "parameter": "InternetGatewayDevice.WANDevice.1.WANConnectionDevice.2.WANPPPConnection.1.Password", "writable": "1" }

GET Name操作-当前节点

easycwmp get name InternetGatewayDevice. 1
{ "parameter": "InternetGatewayDevice.DeviceInfo.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.IPPingDiagnostics.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.LANDevice.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.ManagementServer.", "writable": "0" }
{ "parameter": "InternetGatewayDevice.WANDevice.", "writable": "0" }

GET notification

使用方法类似get value


# easycwmp get notification InternetGatewayDevice.DeviceInfo.
{ "parameter": "InternetGatewayDevice.DeviceInfo.SpecVersion", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.ProvisioningCode", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.Manufacturer", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.ManufacturerOUI", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.ProductClass", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.SerialNumber", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.HardwareVersion", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.SoftwareVersion", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.UpTime", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.DeviceLog", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.MemoryStatus.Total", "notification": "0" }
{ "parameter": "InternetGatewayDevice.DeviceInfo.MemoryStatus.Free", "notification": "0" }

SET操作

# easycwmp set value InternetGatewayDevice.ManagementServer.PeriodicInformInterval 1002
# easycwmp get value InternetGatewayDevice.ManagementServer.PeriodicInformInterval 
{ "parameter": "InternetGatewayDevice.ManagementServer.PeriodicInformInterval", "value": "1002", "type": "xsd:unsignedInt" }

set操作时,源码中有一个bug,导致无法设置成功
common文件 line 686

[ "$permission" != "1" -o -z "$setcmd"   ] && exit $E_NON_WRITABLE_PARAMETER

替换成

[ "$permission" != "1" -o -z `$setcmd $val`  ] && exit $E_NON_WRITABLE_PARAMETER

其他操作后期补充

easycwmp脚本模块与其他模块的接口:

脚本模块一方面通过系统调用,完成与系统的连接;另一方面,通过输出固定的格式(Json)的数据,与C语言实现TR069协议的其他模块进行通信,详细通信细节后期补充。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: etcd-manager-1.2.0-win64.exe 是一个在Windows 64位操作系统上运行的 etcd 管理工具。etcd 是一个分布式的键值存储系统,用于在分布式环境下存储和获取数据。etcd-manager 是一个用于管理和监控 etcd 集群的工具,它可以帮助用户轻松地部署、配置和监视 etcd 集群。 etcd-manager-1.2.0-win64.exe 提供了一个直观的图形用户界面(GUI),使用户可以通过简单的操作来管理 etcd 集群。它提供了集群节点的状态信息,包括健康状态、存储容量等。用户可以通过 etcd-manager 来添加、删除和修改集群节点,并监控节点的运行状态。 etcd-manager-1.2.0-win64.exe 还提供了一些高级功能,例如自动扩展和负载均衡。用户可以设置自动扩展规则,以便在需要时动态添加新的节点。它还支持负载均衡,可以自动将请求分发到可用的集群节点上,以提高系统的性能和可靠性。 此外,etcd-manager-1.2.0-win64.exe 还包含了一些安全功能,例如身份验证和访问控制。用户可以设置用户名和密码来保护集群的访问,并根据角色和权限对用户进行授权。 综上所述,etcd-manager-1.2.0-win64.exe 是一个功能强大的 etcd 管理工具,它可以帮助用户轻松地管理和监视 etcd 集群,提高系统的性能和可靠性。 ### 回答2: etcd-manager-1.2.0-win64.exe是一个Windows操作系统上的etcd管理工具。etcd是一个分布式的键值存储系统,用于存储关键配置和服务发现。etcd-manager则是帮助管理和监控etcd集群的工具。 etcd-manager-1.2.0-win64.exe版本是1.2.0,适用于64位的Windows操作系统。通过运行这个可执行文件,可以在Windows平台上使用etcd-manager。 etcd-manager具有很多功能,包括集群管理、监控和告警、备份和恢复等。它可以帮助管理员轻松配置和管理etcd集群,监控集群的健康状态,并在出现问题时提供相应的告警信息。此外,etcd-manager还提供了备份和恢复功能,以便在需要时可以方便地进行数据的备份和恢复操作。 etcd-manager-1.2.0-win64.exe的安装和使用相对简单。只需下载可执行文件,然后在Windows系统上运行它即可。用户可以根据需要配置etcd集群的相关参数,并通过etcd-manager的web界面进行监控和管理。 总之,etcd-manager-1.2.0-win64.exe是一个方便的etcd管理工具,适用于Windows操作系统。它提供了集群管理、监控和告警、备份和恢复等功能,帮助管理员轻松配置和管理etcd集群。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值