Update the servers build information. This needs to be added to the ServerStatus, BuildInfo and all underlying nodes
(self, product_uri, manufacturer_name, product_name, software_version, build_number, build_date)
| 304 | self.name = name |
| 305 | |
| 306 | def set_build_info(self, product_uri, manufacturer_name, product_name, software_version, build_number, build_date): |
| 307 | """ |
| 308 | Update the servers build information. |
| 309 | This needs to be added to the ServerStatus, BuildInfo and all underlying nodes |
| 310 | """ |
| 311 | status_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus)) |
| 312 | build_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo)) |
| 313 | status = status_node.get_value() |
| 314 | if status is None: |
| 315 | status = ua.ServerStatusDataType() |
| 316 | |
| 317 | status.BuildInfo.ProductUri = product_uri |
| 318 | status.BuildInfo.ManufacturerName = manufacturer_name |
| 319 | status.BuildInfo.ProductName = product_name |
| 320 | status.BuildInfo.SoftwareVersion = software_version |
| 321 | status.BuildInfo.BuildNumber = build_number |
| 322 | status.BuildInfo.BuildDate = build_date |
| 323 | status_node.set_value(status) |
| 324 | build_node.set_value(status.BuildInfo) |
| 325 | |
| 326 | # we also need to update all individual nodes :/ |
| 327 | product_uri_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo_ProductUri)) |
| 328 | product_name_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo_ProductName)) |
| 329 | product_manufacturer_name_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo_ManufacturerName)) |
| 330 | product_software_version_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo_SoftwareVersion)) |
| 331 | product_build_number_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo_BuildNumber)) |
| 332 | product_build_date_node = self.get_node(ua.NodeId(ua.ObjectIds.Server_ServerStatus_BuildInfo_BuildDate)) |
| 333 | |
| 334 | product_uri_node.set_value(status.BuildInfo.ProductUri) |
| 335 | product_name_node.set_value(status.BuildInfo.ProductName) |
| 336 | product_manufacturer_name_node.set_value(status.BuildInfo.ManufacturerName) |
| 337 | product_software_version_node.set_value(status.BuildInfo.SoftwareVersion) |
| 338 | product_build_number_node.set_value(status.BuildInfo.BuildNumber) |
| 339 | product_build_date_node.set_value(status.BuildInfo.BuildDate) |
| 340 | |
| 341 | def start(self): |
| 342 | """ |