def test_datetime(self): now = datetime.now() epch = ua.datetime_to_win_epoch(now) dt = ua.win_epoch_to_datetime(epch) self.assertEqual(now, dt) epch = 128930364000001000 dt = ua.win_epoch_to_datetime(epch) epch2 = ua.datetime_to_win_epoch(dt) self.assertEqual(epch, epch2)
def get_references(self, refs=ua.ObjectIds.References, direction=ua.BrowseDirection.Both, nodeclassmask=ua.NodeClass.Unspecified, includesubtypes=True): """ returns references of the node based on specific filter defined with: refs = ObjectId of the Reference direction = Browse direction for references nodeclassmask = filter nodes based on specific class includesubtypes = If true subtypes of the reference (ref) are also included """ desc = ua.BrowseDescription() desc.BrowseDirection = direction desc.ReferenceTypeId = ua.TwoByteNodeId(refs) desc.IncludeSubtypes = includesubtypes desc.NodeClassMask = nodeclassmask desc.ResultMask = ua.BrowseResultMask.All desc.NodeId = self.nodeid params = ua.BrowseParameters() params.View.Timestamp = ua.win_epoch_to_datetime(0) params.NodesToBrowse.append(desc) results = self.server.browse(params) return results[0].References
def test_datetime(self): now = datetime.utcnow() epch = ua.datetime_to_win_epoch(now) dt = ua.win_epoch_to_datetime(epch) self.assertEqual(now, dt) # python's datetime has a range from Jan 1, 0001 to the end of year 9999 # windows' filetime has a range from Jan 1, 1601 to approx. year 30828 # let's test an overlapping range [Jan 1, 1601 - Dec 31, 9999] dt = datetime(1601, 1, 1) self.assertEqual(ua.win_epoch_to_datetime(ua.datetime_to_win_epoch(dt)), dt) dt = datetime(9999, 12, 31, 23, 59, 59) self.assertEqual(ua.win_epoch_to_datetime(ua.datetime_to_win_epoch(dt)), dt) epch = 128930364000001000 dt = ua.win_epoch_to_datetime(epch) epch2 = ua.datetime_to_win_epoch(dt) self.assertEqual(epch, epch2) epch = 0 self.assertEqual(ua.datetime_to_win_epoch(ua.win_epoch_to_datetime(epch)), epch)
def get_children_descriptions(self, refs=ua.ObjectIds.HierarchicalReferences, nodeclassmask=ua.NodeClass.Unspecified, includesubtypes=True): """ return all attributes of child nodes as UA BrowseResult structs """ desc = ua.BrowseDescription() desc.BrowseDirection = ua.BrowseDirection.Forward desc.ReferenceTypeId = ua.TwoByteNodeId(refs) desc.IncludeSubtypes = includesubtypes desc.NodeClassMask = nodeclassmask desc.ResultMask = ua.BrowseResultMask.All desc.NodeId = self.nodeid params = ua.BrowseParameters() params.View.Timestamp = ua.win_epoch_to_datetime(0) params.NodesToBrowse.append(desc) results = self.server.browse(params) return results[0].References
def unpack(data): epch = Primitives.Int64.unpack(data) return ua.win_epoch_to_datetime(epch)