lvkit 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. lvkit/__init__.py +55 -0
  2. lvkit/_data.py +24 -0
  3. lvkit/cli.py +980 -0
  4. lvkit/codegen/README.md +147 -0
  5. lvkit/codegen/__init__.py +36 -0
  6. lvkit/codegen/ast_optimizer.py +436 -0
  7. lvkit/codegen/ast_utils.py +241 -0
  8. lvkit/codegen/builder.py +754 -0
  9. lvkit/codegen/class_builder.py +775 -0
  10. lvkit/codegen/condition_builder.py +316 -0
  11. lvkit/codegen/context.py +576 -0
  12. lvkit/codegen/dataflow.py +241 -0
  13. lvkit/codegen/error_handler.py +297 -0
  14. lvkit/codegen/expressions.py +202 -0
  15. lvkit/codegen/fragment.py +54 -0
  16. lvkit/codegen/function.py +307 -0
  17. lvkit/codegen/imports.py +132 -0
  18. lvkit/codegen/nodes/__init__.py +102 -0
  19. lvkit/codegen/nodes/base.py +50 -0
  20. lvkit/codegen/nodes/case.py +345 -0
  21. lvkit/codegen/nodes/compound.py +159 -0
  22. lvkit/codegen/nodes/constant.py +33 -0
  23. lvkit/codegen/nodes/invoke_node.py +83 -0
  24. lvkit/codegen/nodes/loop.py +744 -0
  25. lvkit/codegen/nodes/nmux.py +224 -0
  26. lvkit/codegen/nodes/primitive.py +673 -0
  27. lvkit/codegen/nodes/printf.py +70 -0
  28. lvkit/codegen/nodes/property_node.py +106 -0
  29. lvkit/codegen/nodes/sequence.py +65 -0
  30. lvkit/codegen/nodes/subvi.py +789 -0
  31. lvkit/codegen/stubs.py +184 -0
  32. lvkit/codegen/unresolved.py +156 -0
  33. lvkit/data/drivers/_index.json +15 -0
  34. lvkit/data/drivers/daqmx.json +2708 -0
  35. lvkit/data/drivers/nidcpower.json +545 -0
  36. lvkit/data/drivers/nidigital.json +830 -0
  37. lvkit/data/drivers/nidmm.json +620 -0
  38. lvkit/data/drivers/nifgen.json +490 -0
  39. lvkit/data/drivers/niscope.json +560 -0
  40. lvkit/data/drivers/niswitch.json +475 -0
  41. lvkit/data/drivers/serial.json +170 -0
  42. lvkit/data/drivers/visa.json +542 -0
  43. lvkit/data/labview_error_codes.json +1318 -0
  44. lvkit/data/openg/_index.json +12 -0
  45. lvkit/data/openg/array.json +6951 -0
  46. lvkit/data/openg/file.json +876 -0
  47. lvkit/data/openg/string.json +146 -0
  48. lvkit/data/openg/time.json +98 -0
  49. lvkit/data/openg/variant.json +33 -0
  50. lvkit/data/primitives-from-pdf.json +8452 -0
  51. lvkit/data/primitives.json +3166 -0
  52. lvkit/data/vilib/_index.json +19 -0
  53. lvkit/data/vilib/_pending_terminals.json +1391 -0
  54. lvkit/data/vilib/_types.json +24 -0
  55. lvkit/data/vilib/application-control.json +5408 -0
  56. lvkit/data/vilib/array.json +2071 -0
  57. lvkit/data/vilib/boolean.json +704 -0
  58. lvkit/data/vilib/cluster.json +776 -0
  59. lvkit/data/vilib/comparison.json +2388 -0
  60. lvkit/data/vilib/error-handling.json +2274 -0
  61. lvkit/data/vilib/file-io.json +4733 -0
  62. lvkit/data/vilib/numeric.json +1538 -0
  63. lvkit/data/vilib/other.json +87782 -0
  64. lvkit/data/vilib/string.json +3582 -0
  65. lvkit/data/vilib/structures.json +1040 -0
  66. lvkit/data/vilib/variant.json +1343 -0
  67. lvkit/docs/__init__.py +1 -0
  68. lvkit/docs/generate.py +400 -0
  69. lvkit/docs/html_generator.py +853 -0
  70. lvkit/docs/template.css +398 -0
  71. lvkit/docs/utils.py +109 -0
  72. lvkit/extractor.py +98 -0
  73. lvkit/graph/__init__.py +10 -0
  74. lvkit/graph/analysis.py +158 -0
  75. lvkit/graph/construction.py +1221 -0
  76. lvkit/graph/core.py +321 -0
  77. lvkit/graph/describe.py +493 -0
  78. lvkit/graph/diff.py +387 -0
  79. lvkit/graph/flowchart.py +281 -0
  80. lvkit/graph/loading.py +716 -0
  81. lvkit/graph/models.py +420 -0
  82. lvkit/graph/operations.py +446 -0
  83. lvkit/graph/queries.py +813 -0
  84. lvkit/labview_error.py +146 -0
  85. lvkit/labview_error_codes.py +48 -0
  86. lvkit/mcp/__init__.py +7 -0
  87. lvkit/mcp/schemas.py +239 -0
  88. lvkit/mcp/server.py +647 -0
  89. lvkit/mcp/tools.py +204 -0
  90. lvkit/models.py +388 -0
  91. lvkit/parser/__init__.py +96 -0
  92. lvkit/parser/constants.py +158 -0
  93. lvkit/parser/defaults.py +117 -0
  94. lvkit/parser/flags.py +26 -0
  95. lvkit/parser/front_panel.py +257 -0
  96. lvkit/parser/metadata.py +290 -0
  97. lvkit/parser/models.py +406 -0
  98. lvkit/parser/naming.py +77 -0
  99. lvkit/parser/node_types.py +600 -0
  100. lvkit/parser/nodes/__init__.py +16 -0
  101. lvkit/parser/nodes/base.py +80 -0
  102. lvkit/parser/nodes/case.py +389 -0
  103. lvkit/parser/nodes/constant.py +55 -0
  104. lvkit/parser/nodes/loop.py +134 -0
  105. lvkit/parser/nodes/sequence.py +150 -0
  106. lvkit/parser/type_mapping.py +387 -0
  107. lvkit/parser/type_resolution.py +254 -0
  108. lvkit/parser/utils.py +124 -0
  109. lvkit/parser/vi.py +1033 -0
  110. lvkit/pipeline.py +683 -0
  111. lvkit/primitive_resolver.py +633 -0
  112. lvkit/project_store.py +480 -0
  113. lvkit/py.typed +0 -0
  114. lvkit/skill_templates/__init__.py +15 -0
  115. lvkit/skill_templates/lvkit-convert/SKILL.md +141 -0
  116. lvkit/skill_templates/lvkit-describe/SKILL.md +108 -0
  117. lvkit/skill_templates/lvkit-idiomatic/SKILL.md +85 -0
  118. lvkit/skill_templates/lvkit-resolve-primitive/SKILL.md +275 -0
  119. lvkit/skill_templates/lvkit-resolve-vilib/SKILL.md +146 -0
  120. lvkit/structure.py +788 -0
  121. lvkit/terminal_collector.py +295 -0
  122. lvkit/type_defaults.py +195 -0
  123. lvkit/vilib_resolver.py +1160 -0
  124. lvkit-0.1.0.dist-info/METADATA +199 -0
  125. lvkit-0.1.0.dist-info/RECORD +128 -0
  126. lvkit-0.1.0.dist-info/WHEEL +4 -0
  127. lvkit-0.1.0.dist-info/entry_points.txt +3 -0
  128. lvkit-0.1.0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,704 @@
1
+ {
2
+ "category": "Boolean",
3
+ "count": 22,
4
+ "entries": [
5
+ {
6
+ "name": "Assert Error Cluster Type VI",
7
+ "page": 781,
8
+ "category": "Boolean",
9
+ "description": "Breaks the calling VI unless the input data is an error cluster. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for error clusters or to force a malleable VI to accept error clusters only. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for error clusters or to force a malleable VI to",
10
+ "vi_path": null,
11
+ "is_polymorphic": false,
12
+ "python_hint": null,
13
+ "status": "needs_terminals",
14
+ "terminals": [
15
+ {
16
+ "name": "value in",
17
+ "description": "value in specifies the input data.",
18
+ "default_value": null,
19
+ "enum_values": null,
20
+ "python_param": "value_in"
21
+ },
22
+ {
23
+ "name": "value out",
24
+ "description": "value out returns the input data if value in is an error cluster. Otherwise, this output returns an empty error cluster. Functions \u00a9 National Instruments 781",
25
+ "default_value": null,
26
+ "enum_values": null,
27
+ "python_param": "value_out"
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ "name": "Assert Array Dimension Count VI",
33
+ "page": 782,
34
+ "category": "Boolean",
35
+ "description": "Breaks the calling VI unless value in is an array with the same number of dimensions as array type. To check if each dimension has the same size, use the Assert Array Dimension Sizes VI. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for certain array types or to force a malleable VI to accept certain array types only.",
36
+ "vi_path": null,
37
+ "is_polymorphic": false,
38
+ "python_hint": null,
39
+ "status": "needs_terminals",
40
+ "terminals": [
41
+ {
42
+ "name": "array type",
43
+ "description": "array type specifies the input comparison array with the requirements that the input data must meet. This input accepts arrays of any data type. To set the data type of this input, wire a constant or control of the desired data type to array type. LabVIEW ignores any data in the constant or control wired to array type.",
44
+ "default_value": null,
45
+ "enum_values": null,
46
+ "python_param": "array_type"
47
+ },
48
+ {
49
+ "name": "value in",
50
+ "description": "value in specifies the input data. This input accepts arrays that meet the requirements of array type.",
51
+ "default_value": null,
52
+ "enum_values": null,
53
+ "python_param": "value_in"
54
+ },
55
+ {
56
+ "name": "value out",
57
+ "description": "value out returns the input data if value in is an array that meets the requirements. Otherwise, this output returns an empty array of array type.",
58
+ "default_value": null,
59
+ "enum_values": null,
60
+ "python_param": "value_out"
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ "name": "Assert Array Dimension Sizes VI",
66
+ "page": 782,
67
+ "category": "Boolean",
68
+ "description": "Breaks the calling VI unless value in is an array with the same number of dimensions Functions 782 ni.com as array type and each dimension in value in has the same size requirement (fixed, bounded, or variable-sized) and size (for fixed and bounded) as the corresponding dimension in array type. If you do not need to compare the size of each dimension, use the Assert Array Dimension Count VI. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to cu",
69
+ "vi_path": null,
70
+ "is_polymorphic": false,
71
+ "python_hint": null,
72
+ "status": "needs_terminals",
73
+ "terminals": [
74
+ {
75
+ "name": "array type",
76
+ "description": "array type specifies the input comparison array with the requirements that the input data must meet. This input accepts arrays of any data type. To set the data type of this input, wire a constant or control of the desired data type to array type. LabVIEW ignores any data in the constant or control wired to array type.",
77
+ "default_value": null,
78
+ "enum_values": null,
79
+ "python_param": "array_type"
80
+ },
81
+ {
82
+ "name": "value in",
83
+ "description": "value in specifies the input data. This input accepts arrays that meet the requirements of array type.",
84
+ "default_value": null,
85
+ "enum_values": null,
86
+ "python_param": "value_in"
87
+ },
88
+ {
89
+ "name": "value out",
90
+ "description": "value out returns the input data if value in is an array that meets the requirements. Otherwise, this output returns an empty array of array type.",
91
+ "default_value": null,
92
+ "enum_values": null,
93
+ "python_param": "value_out"
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ "name": "Assert Same or Descendant Type VI",
99
+ "page": 783,
100
+ "category": "Boolean",
101
+ "description": "Breaks the calling VI unless the input data is the same as or is a descendant of the Functions \u00a9 National Instruments 783 input class or interface. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for the specified class or interface or the descendants of the specified class or interface or to force a malleable VI to accept the specified class or interface or the descendants of the specified",
102
+ "vi_path": null,
103
+ "is_polymorphic": false,
104
+ "python_hint": null,
105
+ "status": "needs_terminals",
106
+ "terminals": [
107
+ {
108
+ "name": "ancestor type",
109
+ "description": "ancestor type specifies the input class or interface with the requirements that the input data must meet. This input accepts any class or interface. To set the class or interface of this input, wire a constant or control of the desired class or interface to ancestor type. LabVIEW ignores any data in the constant or control wired to ancestor type.",
110
+ "default_value": null,
111
+ "enum_values": null,
112
+ "python_param": "ancestor_type"
113
+ },
114
+ {
115
+ "name": "value in",
116
+ "description": "value in specifies the input data. This input accepts the class or interface of ancestor type or descendants of ancestor type.",
117
+ "default_value": null,
118
+ "enum_values": null,
119
+ "python_param": "value_in"
120
+ },
121
+ {
122
+ "name": "value out",
123
+ "description": "value out returns the input data if value in meets the requirements. Otherwise, this output returns the default value of ancestor type.",
124
+ "default_value": "value of ancestor type",
125
+ "enum_values": null,
126
+ "python_param": "value_out"
127
+ }
128
+ ]
129
+ },
130
+ {
131
+ "name": "Assert Scalar Numeric Or Waveform Type VI",
132
+ "page": 784,
133
+ "category": "Boolean",
134
+ "description": "Breaks the calling VI unless the input data is a scalar numeric or analog waveform type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization Functions 784 ni.com structure to customize sections of code in a malleable VI (.vim) for scalar numeric or waveform types or to force a malleable VI to accept scalar numeric or waveform types only.",
135
+ "vi_path": null,
136
+ "is_polymorphic": false,
137
+ "python_hint": null,
138
+ "status": "needs_terminals",
139
+ "terminals": [
140
+ {
141
+ "name": "value in",
142
+ "description": "value in specifies the input data. This input accepts any scalar numeric or waveform data type.",
143
+ "default_value": null,
144
+ "enum_values": null,
145
+ "python_param": "value_in"
146
+ },
147
+ {
148
+ "name": "value out",
149
+ "description": "value out returns the input data if value in is a scalar numeric or analog waveform type. Otherwise, this output returns a double-precision floating-point number 0.",
150
+ "default_value": null,
151
+ "enum_values": null,
152
+ "python_param": "value_out"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "name": "Assert Scalar Numeric Type VI",
158
+ "page": 785,
159
+ "category": "Boolean",
160
+ "description": "Breaks the calling VI unless the input data is a scalar numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for scalar numeric types or to force a malleable VI to accept scalar numeric types only.",
161
+ "vi_path": null,
162
+ "is_polymorphic": false,
163
+ "python_hint": null,
164
+ "status": "needs_terminals",
165
+ "terminals": [
166
+ {
167
+ "name": "value in",
168
+ "description": "value in specifies the input data. This input accepts any scalar numeric data type. Functions \u00a9 National Instruments 785",
169
+ "default_value": null,
170
+ "enum_values": null,
171
+ "python_param": "value_in"
172
+ },
173
+ {
174
+ "name": "value out",
175
+ "description": "value out returns the input data if value in is a scalar numeric type. Otherwise, this output returns a double-precision floating-point number 0.",
176
+ "default_value": null,
177
+ "enum_values": null,
178
+ "python_param": "value_out"
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "name": "Assert Real Numeric Or Waveform Type VI",
184
+ "page": 786,
185
+ "category": "Boolean",
186
+ "description": "Breaks the calling VI unless the input data is a non-complex numeric or analog waveform type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for non-complex numeric or waveform types or to force a malleable VI to accept non-complex numeric or analog waveform types only.",
187
+ "vi_path": null,
188
+ "is_polymorphic": false,
189
+ "python_hint": null,
190
+ "status": "needs_terminals",
191
+ "terminals": [
192
+ {
193
+ "name": "value in",
194
+ "description": "value in specifies the input data. This input accepts any non-complex numeric or waveform data type.",
195
+ "default_value": null,
196
+ "enum_values": null,
197
+ "python_param": "value_in"
198
+ },
199
+ {
200
+ "name": "value out",
201
+ "description": "value out returns the input data if value in is a non-complex numeric or analog waveform type. Otherwise, this output returns a double-precision floating-point number 0.",
202
+ "default_value": null,
203
+ "enum_values": null,
204
+ "python_param": "value_out"
205
+ }
206
+ ]
207
+ },
208
+ {
209
+ "name": "Assert Real Numeric Type VI",
210
+ "page": 786,
211
+ "category": "Boolean",
212
+ "description": "Breaks the calling VI unless the input data is a non-complex numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for non-complex numeric types or to force a malleable VI to accept non-complex numeric types only. Functions 786 ni.com",
213
+ "vi_path": null,
214
+ "is_polymorphic": false,
215
+ "python_hint": null,
216
+ "status": "needs_terminals",
217
+ "terminals": [
218
+ {
219
+ "name": "value in",
220
+ "description": "value in specifies the input data. This input accepts any non-complex numeric data type.",
221
+ "default_value": null,
222
+ "enum_values": null,
223
+ "python_param": "value_in"
224
+ },
225
+ {
226
+ "name": "value out",
227
+ "description": "value out returns the input data if value in is a non-complex numeric type. Otherwise, this output returns a double-precision floating-point number 0.",
228
+ "default_value": null,
229
+ "enum_values": null,
230
+ "python_param": "value_out"
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "name": "Assert Fractional Numeric Type VI",
236
+ "page": 787,
237
+ "category": "Boolean",
238
+ "description": "Breaks the calling VI unless the input data is a floating-point, complex floating-point, or fixed-point numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for floating-point, complex floating-point, or fixed-point numeric types or to force a malleable VI to accept floating-point, complex floating-point, or fixed-point numeric types only.",
239
+ "vi_path": null,
240
+ "is_polymorphic": false,
241
+ "python_hint": null,
242
+ "status": "needs_terminals",
243
+ "terminals": [
244
+ {
245
+ "name": "value in",
246
+ "description": "value in specifies the input data. This input accepts any floating-point, complex floating-point, or fixed-point numeric data type.",
247
+ "default_value": null,
248
+ "enum_values": null,
249
+ "python_param": "value_in"
250
+ },
251
+ {
252
+ "name": "value out",
253
+ "description": "Functions \u00a9 National Instruments 787 value out returns the input data if value in is a floating-point, complex floating-point, or fixed- point numeric type. Otherwise, this output returns a double-precision floating-point number 0.",
254
+ "default_value": null,
255
+ "enum_values": null,
256
+ "python_param": "value_out"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "name": "Assert Complex Numeric Type VI",
262
+ "page": 788,
263
+ "category": "Boolean",
264
+ "description": "Breaks the calling VI unless the input data is a complex numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for complex numeric types or to force a malleable VI to accept complex numeric types only.",
265
+ "vi_path": null,
266
+ "is_polymorphic": false,
267
+ "python_hint": null,
268
+ "status": "needs_terminals",
269
+ "terminals": [
270
+ {
271
+ "name": "value in",
272
+ "description": "value in specifies the input data. This input accepts any complex numeric data type.",
273
+ "default_value": null,
274
+ "enum_values": null,
275
+ "python_param": "value_in"
276
+ },
277
+ {
278
+ "name": "value out",
279
+ "description": "value out returns the input data if value in is a complex numeric type. Otherwise, this output returns a complex double-precision number 0 +0 i. This output can return any complex numeric type.",
280
+ "default_value": null,
281
+ "enum_values": null,
282
+ "python_param": "value_out"
283
+ }
284
+ ]
285
+ },
286
+ {
287
+ "name": "Assert Floating-Point Numeric Type VI",
288
+ "page": 788,
289
+ "category": "Boolean",
290
+ "description": "Breaks the calling VI unless the input data is a floating-point or complex floating-point numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for floating-point or complex floating-point numeric types or to force a malleable VI to accept floating- Functions 788 ni.com point or complex floating-point numeric types only.",
291
+ "vi_path": null,
292
+ "is_polymorphic": false,
293
+ "python_hint": null,
294
+ "status": "needs_terminals",
295
+ "terminals": [
296
+ {
297
+ "name": "value in",
298
+ "description": "value in specifies the input data. This input accepts any floating-point or complex floating-point numeric data type.",
299
+ "default_value": null,
300
+ "enum_values": null,
301
+ "python_param": "value_in"
302
+ },
303
+ {
304
+ "name": "value out",
305
+ "description": "value out returns the input data if value in is a floating-point or complex floating-point numeric type. Otherwise, this output returns a double-precision floating-point number 0.",
306
+ "default_value": null,
307
+ "enum_values": null,
308
+ "python_param": "value_out"
309
+ }
310
+ ]
311
+ },
312
+ {
313
+ "name": "Assert Real Floating-Point Numeric Type VI",
314
+ "page": 789,
315
+ "category": "Boolean",
316
+ "description": "Breaks the calling VI unless the input data is a non-complex floating-point numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for non-complex floating-point numeric types or to force a malleable VI to accept non-complex floating- point numeric types only.",
317
+ "vi_path": null,
318
+ "is_polymorphic": false,
319
+ "python_hint": null,
320
+ "status": "needs_terminals",
321
+ "terminals": [
322
+ {
323
+ "name": "value in",
324
+ "description": "value in specifies the input data. This input accepts any non-complex floating-point numeric data type. Functions \u00a9 National Instruments 789",
325
+ "default_value": null,
326
+ "enum_values": null,
327
+ "python_param": "value_in"
328
+ },
329
+ {
330
+ "name": "value out",
331
+ "description": "value out returns the input data if value in is a non-complex floating-point numeric type. Otherwise, this output returns a double-precision floating-point number 0.",
332
+ "default_value": null,
333
+ "enum_values": null,
334
+ "python_param": "value_out"
335
+ }
336
+ ]
337
+ },
338
+ {
339
+ "name": "Assert Integer Type VI",
340
+ "page": 790,
341
+ "category": "Boolean",
342
+ "description": "Breaks the calling VI unless the input data is an integer numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for integer numeric types or to force a malleable VI to accept integer numeric types only.",
343
+ "vi_path": null,
344
+ "is_polymorphic": false,
345
+ "python_hint": null,
346
+ "status": "needs_terminals",
347
+ "terminals": [
348
+ {
349
+ "name": "value in",
350
+ "description": "value in specifies the input data. This input accepts any integer numeric data type.",
351
+ "default_value": null,
352
+ "enum_values": null,
353
+ "python_param": "value_in"
354
+ },
355
+ {
356
+ "name": "value out",
357
+ "description": "value out returns the input data if value in is an integer numeric type. Otherwise, this output returns a 32-bit signed integer 0.",
358
+ "default_value": null,
359
+ "enum_values": null,
360
+ "python_param": "value_out"
361
+ }
362
+ ]
363
+ },
364
+ {
365
+ "name": "Assert Signed Integer Type VI",
366
+ "page": 790,
367
+ "category": "Boolean",
368
+ "description": "Breaks the calling VI unless the input data is a signed integer numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for signed integer numeric types or to force a malleable VI to accept signed integer numeric types only. Functions 790 ni.com",
369
+ "vi_path": null,
370
+ "is_polymorphic": false,
371
+ "python_hint": null,
372
+ "status": "needs_terminals",
373
+ "terminals": [
374
+ {
375
+ "name": "value in",
376
+ "description": "value in specifies the input data. This input accepts any signed integer numeric data type.",
377
+ "default_value": null,
378
+ "enum_values": null,
379
+ "python_param": "value_in"
380
+ },
381
+ {
382
+ "name": "value out",
383
+ "description": "value out returns the input data if value in is a signed integer numeric type. Otherwise, this output returns a 32-bit signed integer 0.",
384
+ "default_value": null,
385
+ "enum_values": null,
386
+ "python_param": "value_out"
387
+ }
388
+ ]
389
+ },
390
+ {
391
+ "name": "Assert Unsigned Integer Type VI",
392
+ "page": 791,
393
+ "category": "Boolean",
394
+ "description": "Breaks the calling VI unless the input data is an unsigned integer numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for unsigned integer numeric types or to force a malleable VI to accept unsigned integer numeric types only.",
395
+ "vi_path": null,
396
+ "is_polymorphic": false,
397
+ "python_hint": null,
398
+ "status": "needs_terminals",
399
+ "terminals": [
400
+ {
401
+ "name": "value in",
402
+ "description": "value in specifies the input data. This input accepts any unsigned integer numeric data type.",
403
+ "default_value": null,
404
+ "enum_values": null,
405
+ "python_param": "value_in"
406
+ },
407
+ {
408
+ "name": "value out",
409
+ "description": "value out returns the input data if value in is an unsigned integer numeric type. Otherwise, this output returns a 32-bit unsigned integer 0. Functions \u00a9 National Instruments 791",
410
+ "default_value": null,
411
+ "enum_values": null,
412
+ "python_param": "value_out"
413
+ }
414
+ ]
415
+ },
416
+ {
417
+ "name": "Assert Fixed-Point Numeric Type VI",
418
+ "page": 792,
419
+ "category": "Boolean",
420
+ "description": "Breaks the calling VI unless the input data is a fixed-point numeric type. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for fixed-point numeric data types or to force a malleable VI to accept fixed-point numeric types only. This VI does nothing at run time. Use this VI in conjunction with the Type Specialization structure to customize sections of code in a malleable VI (.vim) for fixed-p",
421
+ "vi_path": null,
422
+ "is_polymorphic": false,
423
+ "python_hint": null,
424
+ "status": "needs_terminals",
425
+ "terminals": [
426
+ {
427
+ "name": "value in",
428
+ "description": "value in specifies the input data.",
429
+ "default_value": null,
430
+ "enum_values": null,
431
+ "python_param": "value_in"
432
+ },
433
+ {
434
+ "name": "value out",
435
+ "description": "value out returns the input data if value in is a fixed-point numeric type. Otherwise, this output returns a fixed-point number 0.",
436
+ "default_value": null,
437
+ "enum_values": null,
438
+ "python_param": "value_out"
439
+ }
440
+ ]
441
+ },
442
+ {
443
+ "name": "Is Value Changed",
444
+ "page": 792,
445
+ "category": "Boolean",
446
+ "description": "Returns TRUE if this is the first call of this VI or if the input value is different from the value when this VI was last called.",
447
+ "vi_path": null,
448
+ "is_polymorphic": false,
449
+ "python_hint": null,
450
+ "status": "needs_terminals",
451
+ "terminals": [
452
+ {
453
+ "name": "value",
454
+ "description": "Functions 792 ni.com value specifies the value to check. This input accepts any data type.",
455
+ "default_value": null,
456
+ "enum_values": null,
457
+ "python_param": "value"
458
+ },
459
+ {
460
+ "name": "changed or first call?",
461
+ "description": "changed or first call? returns TRUE if this is the first call of this VI or if the value changed since the last time this VI was called. Otherwise, this output returns FALSE. Examples Refer to the following example files included with LabVIEW.",
462
+ "default_value": null,
463
+ "enum_values": null,
464
+ "python_param": "changed_or_first_call"
465
+ },
466
+ {
467
+ "name": "labview\\examples\\Malleable VIs\\Basics\\Malleable VIs",
468
+ "description": "",
469
+ "default_value": null,
470
+ "enum_values": null,
471
+ "python_param": "labview_examples_malleable_vis_basics_malleable_vis"
472
+ },
473
+ {
474
+ "name": "path",
475
+ "description": "path specifies the path you want to check.",
476
+ "default_value": null,
477
+ "enum_values": null,
478
+ "python_param": "path"
479
+ },
480
+ {
481
+ "name": "Is Path and Not Empty?",
482
+ "description": "Is Path and Not Empty? returns TRUE if path is any value other than <Not A Path> or an empty path. Otherwise, Is Path and Not Empty? returns FALSE. Fixed-Point Overflow? Function Fixed-Point Overflow? Function Returns TRUE if FXP includes an overflow status and FXP is the result of an operation that overflowed. Otherwise, this function returns FALSE. Functions",
483
+ "default_value": null,
484
+ "enum_values": null,
485
+ "python_param": "is_path_and_not_empty"
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "name": "Is Path and Not Empty?",
491
+ "page": 793,
492
+ "category": "Boolean",
493
+ "description": "Returns TRUE if path is any value other than <Not A Path> or an empty path. Otherwise, this VI returns FALSE.",
494
+ "vi_path": null,
495
+ "is_polymorphic": false,
496
+ "python_hint": null,
497
+ "status": "needs_terminals",
498
+ "terminals": [
499
+ {
500
+ "name": "path",
501
+ "description": "path specifies the path you want to check.",
502
+ "default_value": null,
503
+ "enum_values": null,
504
+ "python_param": "path"
505
+ },
506
+ {
507
+ "name": "Is Path and Not Empty?",
508
+ "description": "Is Path and Not Empty? returns TRUE if path is any value other than <Not A Path> or an empty path. Otherwise, Is Path and Not Empty? returns FALSE. Fixed-Point Overflow? Function Fixed-Point Overflow? Function Returns TRUE if FXP includes an overflow status and FXP is the result of an operation that overflowed. Otherwise, this function returns FALSE. Functions \u00a9 National Instruments 793 Inputs/Outputs",
509
+ "default_value": null,
510
+ "enum_values": null,
511
+ "python_param": "is_path_and_not_empty"
512
+ },
513
+ {
514
+ "name": "FXP",
515
+ "description": "FXP specifies a fixed-point number.",
516
+ "default_value": null,
517
+ "enum_values": null,
518
+ "python_param": "fxp"
519
+ },
520
+ {
521
+ "name": "overflow?",
522
+ "description": "overflow? is TRUE if FXP includes an overflow status and FXP is the result of an operation that overflowed. If FXP does not include an overflow status, or if FXP includes an overflow status but is not the result of an operation that overflowed, overflow? is FALSE.",
523
+ "default_value": null,
524
+ "enum_values": null,
525
+ "python_param": "overflow"
526
+ }
527
+ ]
528
+ },
529
+ {
530
+ "name": "Fixed-Point Overflow? Function",
531
+ "page": 793,
532
+ "category": "Boolean",
533
+ "description": "Returns TRUE if FXP includes an overflow status and FXP is the result of an operation that overflowed. Otherwise, this function returns FALSE. Functions \u00a9 National Instruments 793",
534
+ "vi_path": null,
535
+ "is_polymorphic": false,
536
+ "python_hint": null,
537
+ "status": "needs_terminals",
538
+ "terminals": [
539
+ {
540
+ "name": "FXP",
541
+ "description": "FXP specifies a fixed-point number.",
542
+ "default_value": null,
543
+ "enum_values": null,
544
+ "python_param": "fxp"
545
+ },
546
+ {
547
+ "name": "overflow?",
548
+ "description": "overflow? is TRUE if FXP includes an overflow status and FXP is the result of an operation that overflowed. If FXP does not include an overflow status, or if FXP includes an overflow status but is not the result of an operation that overflowed, overflow? is FALSE.",
549
+ "default_value": null,
550
+ "enum_values": null,
551
+ "python_param": "overflow"
552
+ }
553
+ ]
554
+ },
555
+ {
556
+ "name": "Get Waveform Components",
557
+ "page": 797,
558
+ "category": "Boolean",
559
+ "description": "Returns the analog waveform you specify. You specify components by clicking on the center of the output terminal and selecting the component you want.",
560
+ "vi_path": null,
561
+ "is_polymorphic": false,
562
+ "python_hint": null,
563
+ "status": "needs_terminals",
564
+ "terminals": [
565
+ {
566
+ "name": "waveform",
567
+ "description": "waveform is the waveform from which you want to retrieve components.",
568
+ "default_value": null,
569
+ "enum_values": null,
570
+ "python_param": "waveform"
571
+ },
572
+ {
573
+ "name": "t0",
574
+ "description": "t0 returns the trigger time of the waveform.",
575
+ "default_value": null,
576
+ "enum_values": null,
577
+ "python_param": "t0"
578
+ },
579
+ {
580
+ "name": "dt",
581
+ "description": "dt returns the time interval in seconds between data points in the waveform.",
582
+ "default_value": null,
583
+ "enum_values": null,
584
+ "python_param": "dt"
585
+ },
586
+ {
587
+ "name": "attributes",
588
+ "description": "attributes returns the names and values of all waveform attributes. You also can use the Get Waveform Attribute VI to retrieve the names and values of all attributes or the value of a single attribute.",
589
+ "default_value": null,
590
+ "enum_values": null,
591
+ "python_param": "attributes"
592
+ }
593
+ ]
594
+ },
595
+ {
596
+ "name": "Build Waveform",
597
+ "page": 797,
598
+ "category": "Boolean",
599
+ "description": "Builds an analog waveform or modifies an existing waveform. If you do not wire the waveform input, the function creates a new waveform based on the components you wire. If you wire the waveform input, the function modifies the waveform based on the components you wire. Functions \u00a9 National Instruments 797",
600
+ "vi_path": null,
601
+ "is_polymorphic": false,
602
+ "python_hint": null,
603
+ "status": "needs_terminals",
604
+ "terminals": [
605
+ {
606
+ "name": "waveform",
607
+ "description": "waveform is the analog waveform you want to edit. If you do not wire an existing waveform, the function creates a new waveform based on the components you wire.",
608
+ "default_value": null,
609
+ "enum_values": null,
610
+ "python_param": "waveform"
611
+ },
612
+ {
613
+ "name": "t0",
614
+ "description": "t0 specifies the start time of the waveform.",
615
+ "default_value": null,
616
+ "enum_values": null,
617
+ "python_param": "t0"
618
+ },
619
+ {
620
+ "name": "dt",
621
+ "description": "dt specifies the time interval in seconds between data points in the waveform.",
622
+ "default_value": null,
623
+ "enum_values": null,
624
+ "python_param": "dt"
625
+ },
626
+ {
627
+ "name": "attributes",
628
+ "description": "attributes sets the names and values of all waveform attributes. You also can use the Set Waveform Attribute function to set the name and value of a single attribute.",
629
+ "default_value": null,
630
+ "enum_values": null,
631
+ "python_param": "attributes"
632
+ },
633
+ {
634
+ "name": "output waveform",
635
+ "description": "waveform is the resulting waveform. If you did not wire an existing waveform, this is a new waveform. If you wired an existing waveform, this is the edited waveform.",
636
+ "default_value": null,
637
+ "enum_values": null,
638
+ "python_param": "output_waveform"
639
+ }
640
+ ]
641
+ },
642
+ {
643
+ "name": "Set Waveform Attribute Function",
644
+ "page": 798,
645
+ "category": "Boolean",
646
+ "description": "Adds or replaces a waveform attribute. You can use any type of data for the value of the attribute. Functions 798 ni.com",
647
+ "vi_path": null,
648
+ "is_polymorphic": false,
649
+ "python_hint": null,
650
+ "status": "needs_terminals",
651
+ "terminals": [
652
+ {
653
+ "name": "waveform",
654
+ "description": "waveform is the waveform for which you want to add or replace an attribute.",
655
+ "default_value": null,
656
+ "enum_values": null,
657
+ "python_param": "waveform"
658
+ },
659
+ {
660
+ "name": "name",
661
+ "description": "name is the name of the attribute.",
662
+ "default_value": null,
663
+ "enum_values": null,
664
+ "python_param": "name"
665
+ },
666
+ {
667
+ "name": "value",
668
+ "description": "value is the value of the attribute. This input is polymorphic, so you can wire any data to it.",
669
+ "default_value": null,
670
+ "enum_values": null,
671
+ "python_param": "value"
672
+ },
673
+ {
674
+ "name": "error in (no error)",
675
+ "description": "error in describes error conditions that occur before this node runs. This input provides standard error in functionality.",
676
+ "default_value": null,
677
+ "enum_values": null,
678
+ "python_param": "error_in_no_error"
679
+ },
680
+ {
681
+ "name": "waveform out",
682
+ "description": "waveform out is the waveform with the new or replaced attribute.",
683
+ "default_value": null,
684
+ "enum_values": null,
685
+ "python_param": "waveform_out"
686
+ },
687
+ {
688
+ "name": "replaced",
689
+ "description": "replaced indicates if an attribute was overwritten.",
690
+ "default_value": null,
691
+ "enum_values": null,
692
+ "python_param": "replaced"
693
+ },
694
+ {
695
+ "name": "error out",
696
+ "description": "error out contains error information. This output provides standard error out functionality. If the attribute in name already exists, the function overwrites the attribute with the new value, and replaced is TRUE. If the attribute in name does not exist already, the function creates a new attribute. Some attributes are set by NI-DAQ and Express VIs. The following table lists the waveform attributes set by NI-DAQ. Name Attribute Data Acceptable Values Description Functions",
697
+ "default_value": null,
698
+ "enum_values": null,
699
+ "python_param": "error_out"
700
+ }
701
+ ]
702
+ }
703
+ ]
704
+ }