MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / _val_to_variant

Function _val_to_variant

opcua/tools.py:163–223  ·  view source on GitHub ↗
(val, args)

Source from the content-addressed store, hash-verified

161
162
163def _val_to_variant(val, args):
164 array = args.array
165 if args.datatype == "guess":
166 if val in ("true", "True", "false", "False"):
167 return _arg_to_variant(val, array, _arg_to_bool)
168 try:
169 return _arg_to_variant(val, array, int)
170 except ValueError:
171 try:
172 return _arg_to_variant(val, array, float)
173 except ValueError:
174 return _arg_to_variant(val, array, str)
175 elif args.datatype == "bool":
176 if val in ("1", "True", "true"):
177 return ua.Variant(True, ua.VariantType.Boolean)
178 else:
179 return ua.Variant(False, ua.VariantType.Boolean)
180 elif args.datatype == "sbyte":
181 return _arg_to_variant(val, array, int, ua.VariantType.SByte)
182 elif args.datatype == "byte":
183 return _arg_to_variant(val, array, int, ua.VariantType.Byte)
184 #elif args.datatype == "uint8":
185 #return _arg_to_variant(val, array, int, ua.VariantType.Byte)
186 elif args.datatype == "uint16":
187 return _arg_to_variant(val, array, int, ua.VariantType.UInt16)
188 elif args.datatype == "uint32":
189 return _arg_to_variant(val, array, int, ua.VariantType.UInt32)
190 elif args.datatype == "uint64":
191 return _arg_to_variant(val, array, int, ua.VariantType.UInt64)
192 #elif args.datatype == "int8":
193 #return ua.Variant(int(val), ua.VariantType.Int8)
194 elif args.datatype == "int16":
195 return _arg_to_variant(val, array, int, ua.VariantType.Int16)
196 elif args.datatype == "int32":
197 return _arg_to_variant(val, array, int, ua.VariantType.Int32)
198 elif args.datatype == "int64":
199 return _arg_to_variant(val, array, int, ua.VariantType.Int64)
200 elif args.datatype == "float":
201 return _arg_to_variant(val, array, float, ua.VariantType.Float)
202 elif args.datatype == "double":
203 return _arg_to_variant(val, array, float, ua.VariantType.Double)
204 elif args.datatype == "string":
205 return _arg_to_variant(val, array, str, ua.VariantType.String)
206 elif args.datatype == "datetime":
207 raise NotImplementedError
208 elif args.datatype == "Guid":
209 return _arg_to_variant(val, array, bytes, ua.VariantType.Guid)
210 elif args.datatype == "ByteString":
211 return _arg_to_variant(val, array, bytes, ua.VariantType.ByteString)
212 elif args.datatype == "xml":
213 return _arg_to_variant(val, array, str, ua.VariantType.XmlElement)
214 elif args.datatype == "nodeid":
215 return _arg_to_variant(val, array, ua.NodeId.from_string, ua.VariantType.NodeId)
216 elif args.datatype == "expandednodeid":
217 return _arg_to_variant(val, array, ua.ExpandedNodeId.from_string, ua.VariantType.ExpandedNodeId)
218 elif args.datatype == "statuscode":
219 return _arg_to_variant(val, array, int, ua.VariantType.StatusCode)
220 elif args.datatype in ("qualifiedname", "browsename"):

Callers 2

uawriteFunction · 0.85
uacallFunction · 0.85

Calls 1

_arg_to_variantFunction · 0.85

Tested by

no test coverage detected