UnderAutomation.Fanuc 2.3.0.0__py3-none-any.whl → 3.1.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 (55) hide show
  1. underautomation/fanuc/common/cartesian_position.py +14 -0
  2. underautomation/fanuc/common/configuration.py +20 -17
  3. underautomation/fanuc/common/connect_exception.py +18 -0
  4. underautomation/fanuc/common/extended_cartesian_position.py +2 -20
  5. underautomation/fanuc/common/joints_position.py +11 -2
  6. underautomation/fanuc/common/languages.py +9 -0
  7. underautomation/fanuc/common/position.py +1 -1
  8. underautomation/fanuc/connection_parameters.py +7 -0
  9. underautomation/fanuc/fanuc_robot.py +1 -1
  10. underautomation/fanuc/ftp/diagnosis/current_position_reader.py +1 -1
  11. underautomation/fanuc/ftp/diagnosis/diagnosis_reader_2.py +3 -2
  12. underautomation/fanuc/ftp/diagnosis/features_parser.py +1 -1
  13. underautomation/fanuc/ftp/diagnosis/io_state_parser.py +1 -1
  14. underautomation/fanuc/ftp/diagnosis/program_states_parser.py +1 -1
  15. underautomation/fanuc/ftp/diagnosis/safety_status_parser.py +1 -1
  16. underautomation/fanuc/ftp/diagnosis/summary_diagnosis_reader.py +3 -2
  17. underautomation/fanuc/ftp/fanuc_file_readers.py +17 -23
  18. underautomation/fanuc/ftp/internal/file_reader_1.py +3 -2
  19. underautomation/fanuc/ftp/internal/ftp_client_base.py +7 -1
  20. underautomation/fanuc/ftp/internal/i_file_reader_1.py +3 -2
  21. underautomation/fanuc/ftp/internal/section_parser.py +1 -1
  22. underautomation/fanuc/ftp/list/error_list_reader.py +3 -2
  23. underautomation/fanuc/ftp/variables/generic_variable_type_helpers.py +2 -2
  24. underautomation/fanuc/ftp/variables/variable_reader.py +77 -112
  25. underautomation/fanuc/ftp/variables/variable_reader_1.py +3 -2
  26. underautomation/fanuc/kinematics/__init__.py +0 -0
  27. underautomation/fanuc/kinematics/arm_kinematic_models.py +88 -0
  28. underautomation/fanuc/kinematics/crx/__init__.py +0 -0
  29. underautomation/fanuc/kinematics/crx/crx_kinematics_utils.py +18 -0
  30. underautomation/fanuc/kinematics/crx10ia_l_dhm_parameters.py +31 -0
  31. underautomation/fanuc/kinematics/dh_parameters.py +77 -0
  32. underautomation/fanuc/kinematics/i_dh_parameters.py +30 -0
  33. underautomation/fanuc/kinematics/internal/__init__.py +0 -0
  34. underautomation/fanuc/kinematics/internal/arm_model_attribute.py +31 -0
  35. underautomation/fanuc/kinematics/kinematics_category.py +9 -0
  36. underautomation/fanuc/kinematics/kinematics_utils.py +24 -0
  37. underautomation/fanuc/kinematics/opw/__init__.py +0 -0
  38. underautomation/fanuc/kinematics/opw/opw_kinematics_utils.py +18 -0
  39. underautomation/fanuc/lib/UnderAutomation.Fanuc.dll +0 -0
  40. underautomation/fanuc/lib/version.txt +1 -1
  41. underautomation/fanuc/rmi/internal/rmi_client_base.py +13 -13
  42. underautomation/fanuc/rmi/internal/rmi_connect_parameters_base.py +6 -18
  43. underautomation/fanuc/snpx/internal/batch_assignment_2.py +2 -2
  44. underautomation/fanuc/snpx/internal/position_registers.py +1 -1
  45. underautomation/fanuc/snpx/internal/position_system_variables.py +1 -1
  46. underautomation/fanuc/snpx/internal/robot_alarm.py +4 -3
  47. underautomation/fanuc/snpx/internal/robot_task_status.py +4 -3
  48. underautomation/fanuc/snpx/internal/snpx_client_base.py +7 -0
  49. underautomation/fanuc/snpx/internal/snpx_connect_parameters_base.py +2 -6
  50. underautomation/fanuc/snpx/internal/snpx_writable_assignable_elements_3.py +1 -1
  51. underautomation/fanuc/telnet/internal/telnet_client_base.py +10 -4
  52. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.1.1.0.dist-info}/METADATA +1 -1
  53. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.1.1.0.dist-info}/RECORD +55 -40
  54. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.1.1.0.dist-info}/WHEEL +0 -0
  55. {underautomation_fanuc-2.3.0.0.dist-info → underautomation_fanuc-3.1.1.0.dist-info}/top_level.txt +0 -0
File without changes
@@ -0,0 +1,88 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.Kinematics import ArmKinematicModels as arm_kinematic_models
5
+
6
+ class ArmKinematicModels(int):
7
+ ARCMate0iA = arm_kinematic_models.ARCMate0iA
8
+ ARCMate0iB = arm_kinematic_models.ARCMate0iB
9
+ ARCMate0iB_2 = arm_kinematic_models.ARCMate0iB_2
10
+ ARCMate100iD = arm_kinematic_models.ARCMate100iD
11
+ ARCMate100iD10L = arm_kinematic_models.ARCMate100iD10L
12
+ ARCMate100iD16S = arm_kinematic_models.ARCMate100iD16S
13
+ ARCMate100iD8L = arm_kinematic_models.ARCMate100iD8L
14
+ ARCMate120iD = arm_kinematic_models.ARCMate120iD
15
+ ARCMate120iD12L = arm_kinematic_models.ARCMate120iD12L
16
+ ARCMate120iD35 = arm_kinematic_models.ARCMate120iD35
17
+ CR14iAL = arm_kinematic_models.CR14iAL
18
+ CR15iA = arm_kinematic_models.CR15iA
19
+ CR35iA = arm_kinematic_models.CR35iA
20
+ CR7iA = arm_kinematic_models.CR7iA
21
+ CR7iAL = arm_kinematic_models.CR7iAL
22
+ CRX10iA = arm_kinematic_models.CRX10iA
23
+ CRX10iAL = arm_kinematic_models.CRX10iAL
24
+ LRMate200iD = arm_kinematic_models.LRMate200iD
25
+ LRMate200iD7C = arm_kinematic_models.LRMate200iD7C
26
+ LRMate200iD7L = arm_kinematic_models.LRMate200iD7L
27
+ LRMate200iD7LC = arm_kinematic_models.LRMate200iD7LC
28
+ LaserRobotHA = arm_kinematic_models.LaserRobotHA
29
+ M10iA10M = arm_kinematic_models.M10iA10M
30
+ M10iA10MS = arm_kinematic_models.M10iA10MS
31
+ M10iA12 = arm_kinematic_models.M10iA12
32
+ M10iA12S = arm_kinematic_models.M10iA12S
33
+ M10iA7L = arm_kinematic_models.M10iA7L
34
+ M10iA8L = arm_kinematic_models.M10iA8L
35
+ M2000iA1700L = arm_kinematic_models.M2000iA1700L
36
+ M2000iA2300 = arm_kinematic_models.M2000iA2300
37
+ M2000iA1200 = arm_kinematic_models.M2000iA1200
38
+ M2000iA900L = arm_kinematic_models.M2000iA900L
39
+ M20iA = arm_kinematic_models.M20iA
40
+ M20iA12L = arm_kinematic_models.M20iA12L
41
+ M20iA20M = arm_kinematic_models.M20iA20M
42
+ M20iA35M = arm_kinematic_models.M20iA35M
43
+ M20iB25C = arm_kinematic_models.M20iB25C
44
+ M410iC110 = arm_kinematic_models.M410iC110
45
+ M410iC185_2 = arm_kinematic_models.M410iC185_2
46
+ M410iC185 = arm_kinematic_models.M410iC185
47
+ M410iC500 = arm_kinematic_models.M410iC500
48
+ M410iC500_2 = arm_kinematic_models.M410iC500_2
49
+ M800iA60 = arm_kinematic_models.M800iA60
50
+ M900iB280L = arm_kinematic_models.M900iB280L
51
+ M900iB330L = arm_kinematic_models.M900iB330L
52
+ M900iB360 = arm_kinematic_models.M900iB360
53
+ M900iB400L = arm_kinematic_models.M900iB400L
54
+ M900iB700 = arm_kinematic_models.M900iB700
55
+ M900iBKAI = arm_kinematic_models.M900iBKAI
56
+ M20iB25 = arm_kinematic_models.M20iB25
57
+ M20iB35S = arm_kinematic_models.M20iB35S
58
+ M710iC12L = arm_kinematic_models.M710iC12L
59
+ M710iC20M = arm_kinematic_models.M710iC20M
60
+ M710iC45M = arm_kinematic_models.M710iC45M
61
+ M710iC50 = arm_kinematic_models.M710iC50
62
+ P700iANewRightyArmRightOffset = arm_kinematic_models.P700iANewRightyArmRightOffset
63
+ P350iA45LeftHand = arm_kinematic_models.P350iA45LeftHand
64
+ P350iA45RightHand = arm_kinematic_models.P350iA45RightHand
65
+ R1000iA100F = arm_kinematic_models.R1000iA100F
66
+ R1000iA130F = arm_kinematic_models.R1000iA130F
67
+ R1000iA80F = arm_kinematic_models.R1000iA80F
68
+ R2000iB125L = arm_kinematic_models.R2000iB125L
69
+ R2000iB175L = arm_kinematic_models.R2000iB175L
70
+ R2000iC100S = arm_kinematic_models.R2000iC100S
71
+ R2000iC270F = arm_kinematic_models.R2000iC270F
72
+ R2000iD100FH = arm_kinematic_models.R2000iD100FH
73
+ R1000iA100F7 = arm_kinematic_models.R1000iA100F7
74
+ R1000iA120F7B_3 = arm_kinematic_models.R1000iA120F7B_3
75
+ R1000iA120F7B_2 = arm_kinematic_models.R1000iA120F7B_2
76
+ R1000iA120F7B = arm_kinematic_models.R1000iA120F7B
77
+ R1000iA120F7BS = arm_kinematic_models.R1000iA120F7BS
78
+ R1000iA120F7BS_3 = arm_kinematic_models.R1000iA120F7BS_3
79
+ R1000iA120F7BS_2 = arm_kinematic_models.R1000iA120F7BS_2
80
+ R2000iB210FS = arm_kinematic_models.R2000iB210FS
81
+ R2000iB220US = arm_kinematic_models.R2000iB220US
82
+ R2000iC125L = arm_kinematic_models.R2000iC125L
83
+ R2000iC190U = arm_kinematic_models.R2000iC190U
84
+ R2000iC210F = arm_kinematic_models.R2000iC210F
85
+ R2000iC210L = arm_kinematic_models.R2000iC210L
86
+ R2000iC210WE = arm_kinematic_models.R2000iC210WE
87
+ R2000iC210WEProto = arm_kinematic_models.R2000iC210WEProto
88
+ R2000iC220U = arm_kinematic_models.R2000iC220U
File without changes
@@ -0,0 +1,18 @@
1
+ import typing
2
+ from underautomation.fanuc.common.joints_position import JointsPosition
3
+ from underautomation.fanuc.common.cartesian_position import CartesianPosition
4
+ from underautomation.fanuc.kinematics.dh_parameters import DhParameters
5
+ import clr
6
+ import os
7
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
8
+ from UnderAutomation.Fanuc.Kinematics.Crx import CrxKinematicsUtils as crx_kinematics_utils
9
+
10
+ class CrxKinematicsUtils:
11
+ def __init__(self, _internal = 0):
12
+ if(_internal == 0):
13
+ self._instance = crx_kinematics_utils()
14
+ else:
15
+ self._instance = _internal
16
+ @staticmethod
17
+ def inverse_kinematics(pose: CartesianPosition, parameters: DhParameters, includeDuals: bool=True, seedJoints: typing.List[float]=None) -> typing.List[JointsPosition]:
18
+ return [JointsPosition(x) for x in crx_kinematics_utils.InverseKinematics(pose._instance if pose else None, parameters._instance if parameters else None, includeDuals, seedJoints)]
@@ -0,0 +1,31 @@
1
+ import typing
2
+ from underautomation.fanuc.kinematics.i_dh_parameters import IDhParameters
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.Kinematics import Crx10iaLDhmParameters as crx10ia_l_dhm_parameters
7
+
8
+ class Crx10iaLDhmParameters(IDhParameters):
9
+ def __init__(self, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = crx10ia_l_dhm_parameters()
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def a1(self) -> float:
16
+ return self._instance.A1
17
+ @property
18
+ def a2(self) -> float:
19
+ return self._instance.A2
20
+ @property
21
+ def a3(self) -> float:
22
+ return self._instance.A3
23
+ @property
24
+ def d4(self) -> float:
25
+ return self._instance.D4
26
+ @property
27
+ def d5(self) -> float:
28
+ return self._instance.D5
29
+ @property
30
+ def d6(self) -> float:
31
+ return self._instance.D6
@@ -0,0 +1,77 @@
1
+ import typing
2
+ from underautomation.fanuc.kinematics.i_dh_parameters import IDhParameters
3
+ from underautomation.fanuc.kinematics.kinematics_category import KinematicsCategory
4
+ from underautomation.fanuc.kinematics.arm_kinematic_models import ArmKinematicModels
5
+ from underautomation.fanuc.ftp.variables.symotn_file import SymotnFile
6
+ from underautomation.fanuc.ftp.variables.mrr_grp_variable_type import MrrGrpVariableType
7
+ import clr
8
+ import os
9
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
10
+ from UnderAutomation.Fanuc.Kinematics import DhParameters as dh_parameters
11
+
12
+ class DhParameters(IDhParameters):
13
+ def __init__(self, d4: float, d5: float, d6: float, a1: float, a2: float, a3: float, _internal = 0):
14
+ if(_internal == 0):
15
+ self._instance = dh_parameters(d4, d5, d6, a1, a2, a3)
16
+ else:
17
+ self._instance = _internal
18
+ @staticmethod
19
+ def from_arm_kinematic_model(model: ArmKinematicModels) -> 'DhParameters':
20
+ return DhParameters(None, None, None, None, None, None, dh_parameters.FromArmKinematicModel(model))
21
+ @staticmethod
22
+ def from_opw_parameters(a1: float, a2: float, c2: float, c3: float, c4: float) -> 'DhParameters':
23
+ return DhParameters(None, None, None, None, None, None, dh_parameters.FromOpwParameters(a1, a2, c2, c3, c4))
24
+ @staticmethod
25
+ def from_def_file(doc: typing.Any) -> typing.List['DhParameters']:
26
+ return [DhParameters(x) for x in dh_parameters.FromDefFile(doc)]
27
+ @staticmethod
28
+ def from_symotn_file(file: SymotnFile) -> typing.List['DhParameters']:
29
+ return [DhParameters(x) for x in dh_parameters.FromSymotnFile(file._instance if file else None)]
30
+ @staticmethod
31
+ def from_mrr_grp(mrrGrp: MrrGrpVariableType) -> 'DhParameters':
32
+ return DhParameters(None, None, None, None, None, None, dh_parameters.FromMrrGrp(mrrGrp._instance if mrrGrp else None))
33
+ @property
34
+ def d4(self) -> float:
35
+ return self._instance.D4
36
+ @d4.setter
37
+ def d4(self, value: float):
38
+ self._instance.D4 = value
39
+ @property
40
+ def d5(self) -> float:
41
+ return self._instance.D5
42
+ @d5.setter
43
+ def d5(self, value: float):
44
+ self._instance.D5 = value
45
+ @property
46
+ def d6(self) -> float:
47
+ return self._instance.D6
48
+ @d6.setter
49
+ def d6(self, value: float):
50
+ self._instance.D6 = value
51
+ @property
52
+ def a1(self) -> float:
53
+ return self._instance.A1
54
+ @a1.setter
55
+ def a1(self, value: float):
56
+ self._instance.A1 = value
57
+ @property
58
+ def a2(self) -> float:
59
+ return self._instance.A2
60
+ @a2.setter
61
+ def a2(self, value: float):
62
+ self._instance.A2 = value
63
+ @property
64
+ def a3(self) -> float:
65
+ return self._instance.A3
66
+ @a3.setter
67
+ def a3(self, value: float):
68
+ self._instance.A3 = value
69
+ @property
70
+ def kinematics_category(self) -> KinematicsCategory:
71
+ return KinematicsCategory(self._instance.KinematicsCategory)
72
+ @property
73
+ def tag(self) -> typing.Any:
74
+ return self._instance.Tag
75
+ @tag.setter
76
+ def tag(self, value: typing.Any):
77
+ self._instance.Tag = value
@@ -0,0 +1,30 @@
1
+ import typing
2
+ import clr
3
+ import os
4
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
5
+ from UnderAutomation.Fanuc.Kinematics import IDhParameters as i_dh_parameters
6
+
7
+ class IDhParameters:
8
+ def __init__(self, _internal = 0):
9
+ if(_internal == 0):
10
+ self._instance = i_dh_parameters()
11
+ else:
12
+ self._instance = _internal
13
+ @property
14
+ def d4(self) -> float:
15
+ return self._instance.D4
16
+ @property
17
+ def d5(self) -> float:
18
+ return self._instance.D5
19
+ @property
20
+ def d6(self) -> float:
21
+ return self._instance.D6
22
+ @property
23
+ def a1(self) -> float:
24
+ return self._instance.A1
25
+ @property
26
+ def a2(self) -> float:
27
+ return self._instance.A2
28
+ @property
29
+ def a3(self) -> float:
30
+ return self._instance.A3
File without changes
@@ -0,0 +1,31 @@
1
+ import typing
2
+ from underautomation.fanuc.kinematics.i_dh_parameters import IDhParameters
3
+ import clr
4
+ import os
5
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
6
+ from UnderAutomation.Fanuc.Kinematics.Internal import ArmModelAttribute as arm_model_attribute
7
+
8
+ class ArmModelAttribute(IDhParameters):
9
+ def __init__(self, description: str, d4: float, d5: float, d6: float, a1: float, a2: float, a3: float, _internal = 0):
10
+ if(_internal == 0):
11
+ self._instance = arm_model_attribute(description, d4, d5, d6, a1, a2, a3)
12
+ else:
13
+ self._instance = _internal
14
+ @property
15
+ def d4(self) -> float:
16
+ return self._instance.D4
17
+ @property
18
+ def d5(self) -> float:
19
+ return self._instance.D5
20
+ @property
21
+ def d6(self) -> float:
22
+ return self._instance.D6
23
+ @property
24
+ def a1(self) -> float:
25
+ return self._instance.A1
26
+ @property
27
+ def a2(self) -> float:
28
+ return self._instance.A2
29
+ @property
30
+ def a3(self) -> float:
31
+ return self._instance.A3
@@ -0,0 +1,9 @@
1
+ import clr
2
+ import os
3
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
4
+ from UnderAutomation.Fanuc.Kinematics import KinematicsCategory as kinematics_category
5
+
6
+ class KinematicsCategory(int):
7
+ Invalid = kinematics_category.Invalid
8
+ Crx = kinematics_category.Crx
9
+ Opw = kinematics_category.Opw
@@ -0,0 +1,24 @@
1
+ import typing
2
+ from underautomation.fanuc.common.cartesian_position import CartesianPosition
3
+ from underautomation.fanuc.common.joints_position import JointsPosition
4
+ from underautomation.fanuc.kinematics.dh_parameters import DhParameters
5
+ import clr
6
+ import os
7
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", 'lib', 'UnderAutomation.Fanuc.dll')))
8
+ from UnderAutomation.Fanuc.Kinematics import KinematicsUtils as kinematics_utils
9
+
10
+ class KinematicsUtils:
11
+ def __init__(self, _internal = 0):
12
+ if(_internal == 0):
13
+ self._instance = kinematics_utils()
14
+ else:
15
+ self._instance = _internal
16
+ @staticmethod
17
+ def forward_kinematics(jointAnglesRad: typing.List[float], dhParameters: DhParameters) -> CartesianPosition:
18
+ return CartesianPosition(None, None, None, None, None, None, None, kinematics_utils.ForwardKinematics(jointAnglesRad, dhParameters._instance if dhParameters else None))
19
+ @staticmethod
20
+ def inverse_kinematics(position: CartesianPosition, parameters: DhParameters) -> typing.List[JointsPosition]:
21
+ return [JointsPosition(x) for x in kinematics_utils.InverseKinematics(position._instance if position else None, parameters._instance if parameters else None)]
22
+ @staticmethod
23
+ def mul(A: typing.List[float], B: typing.List[float]) -> typing.List[float]:
24
+ return kinematics_utils.Mul(A, B)
File without changes
@@ -0,0 +1,18 @@
1
+ import typing
2
+ from underautomation.fanuc.common.joints_position import JointsPosition
3
+ from underautomation.fanuc.common.cartesian_position import CartesianPosition
4
+ from underautomation.fanuc.kinematics.dh_parameters import DhParameters
5
+ import clr
6
+ import os
7
+ clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
8
+ from UnderAutomation.Fanuc.Kinematics.Opw import OpwKinematicsUtils as opw_kinematics_utils
9
+
10
+ class OpwKinematicsUtils:
11
+ def __init__(self, _internal = 0):
12
+ if(_internal == 0):
13
+ self._instance = opw_kinematics_utils()
14
+ else:
15
+ self._instance = _internal
16
+ @staticmethod
17
+ def inverse_kinematics(pose: CartesianPosition, dhParameters: DhParameters) -> typing.List[JointsPosition]:
18
+ return [JointsPosition(x) for x in opw_kinematics_utils.InverseKinematics(pose._instance if pose else None, dhParameters._instance if dhParameters else None)]
@@ -1 +1 @@
1
- 2.3.0.0
1
+ 3.1.1.0
@@ -48,15 +48,15 @@ class RmiClientBase:
48
48
  def read_u_frame(self, number: int) -> IndexedFrame:
49
49
  return IndexedFrame(self._instance.ReadUFrame(number))
50
50
  def write_u_frame(self, number: int, frame: Frame) -> None:
51
- self._instance.WriteUFrame(number, frame._instance)
51
+ self._instance.WriteUFrame(number, frame._instance if frame else None)
52
52
  def read_u_tool(self, number: int) -> IndexedFrame:
53
53
  return IndexedFrame(self._instance.ReadUTool(number))
54
54
  def write_u_tool(self, number: int, frame: Frame) -> None:
55
- self._instance.WriteUTool(number, frame._instance)
55
+ self._instance.WriteUTool(number, frame._instance if frame else None)
56
56
  def read_din(self, portNumber: int) -> DigitalInputValue:
57
57
  return DigitalInputValue(self._instance.ReadDIN(portNumber))
58
58
  def write_dout(self, portNumber: int, value: OnOff) -> None:
59
- self._instance.WriteDOUT(portNumber, value._instance)
59
+ self._instance.WriteDOUT(portNumber, value)
60
60
  def read_cartesian_position(self) -> CartesianPosition:
61
61
  return CartesianPosition(self._instance.ReadCartesianPosition())
62
62
  def read_joint_angles(self) -> JointAnglesSample:
@@ -68,11 +68,11 @@ class RmiClientBase:
68
68
  def read_position_register(self, number: int) -> PositionRegisterData:
69
69
  return PositionRegisterData(self._instance.ReadPositionRegister(number))
70
70
  def write_position_register(self, number: int, cfg: MotionConfiguration, frame: Frame) -> None:
71
- self._instance.WritePositionRegister(number, cfg._instance, frame._instance)
71
+ self._instance.WritePositionRegister(number, cfg._instance if cfg else None, frame._instance if frame else None)
72
72
  def read_tcp_speed(self) -> TcpSpeed:
73
73
  return TcpSpeed(self._instance.ReadTcpSpeed())
74
74
  def wait_din(self, sequenceId: int, portNumber: int, value: OnOff) -> RmiSequenceResponse:
75
- return RmiSequenceResponse(self._instance.WaitDin(sequenceId, portNumber, value._instance))
75
+ return RmiSequenceResponse(self._instance.WaitDin(sequenceId, portNumber, value))
76
76
  def set_u_frame_instruction(self, sequenceId: int, frameNumber: int) -> RmiSequenceResponse:
77
77
  return RmiSequenceResponse(self._instance.SetUFrameInstruction(sequenceId, frameNumber))
78
78
  def set_u_tool_instruction(self, sequenceId: int, toolNumber: int) -> RmiSequenceResponse:
@@ -82,21 +82,21 @@ class RmiClientBase:
82
82
  def set_payload(self, sequenceId: int, scheduleNumber: int) -> RmiSequenceResponse:
83
83
  return RmiSequenceResponse(self._instance.SetPayload(sequenceId, scheduleNumber))
84
84
  def linear_motion(self, sequenceId: int, config: MotionConfiguration, position: Frame, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, wristJoint: bool, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
85
- return RmiSequenceResponse(self._instance.LinearMotion(sequenceId, config._instance, position._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
85
+ return RmiSequenceResponse(self._instance.LinearMotion(sequenceId, config._instance if config else None, position._instance if position else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
86
86
  def linear_relative(self, sequenceId: int, config: MotionConfiguration, delta: Frame, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, wristJoint: bool, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
87
- return RmiSequenceResponse(self._instance.LinearRelative(sequenceId, config._instance, delta._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
87
+ return RmiSequenceResponse(self._instance.LinearRelative(sequenceId, config._instance if config else None, delta._instance if delta else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
88
88
  def joint_motion(self, sequenceId: int, config: MotionConfiguration, position: Frame, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
89
- return RmiSequenceResponse(self._instance.JointMotion(sequenceId, config._instance, position._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
89
+ return RmiSequenceResponse(self._instance.JointMotion(sequenceId, config._instance if config else None, position._instance if position else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
90
90
  def joint_relative(self, sequenceId: int, config: MotionConfiguration, delta: Frame, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
91
- return RmiSequenceResponse(self._instance.JointRelative(sequenceId, config._instance, delta._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
91
+ return RmiSequenceResponse(self._instance.JointRelative(sequenceId, config._instance if config else None, delta._instance if delta else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
92
92
  def circular_motion(self, sequenceId: int, config: MotionConfiguration, position: Frame, viaConfig: MotionConfiguration, viaPosition: Frame, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, wristJoint: bool, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
93
- return RmiSequenceResponse(self._instance.CircularMotion(sequenceId, config._instance, position._instance, viaConfig._instance, viaPosition._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
93
+ return RmiSequenceResponse(self._instance.CircularMotion(sequenceId, config._instance if config else None, position._instance if position else None, viaConfig._instance if viaConfig else None, viaPosition._instance if viaPosition else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
94
94
  def circular_relative(self, sequenceId: int, config: MotionConfiguration, delta: Frame, viaConfig: MotionConfiguration, viaDelta: Frame, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, wristJoint: bool, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
95
- return RmiSequenceResponse(self._instance.CircularRelative(sequenceId, config._instance, delta._instance, viaConfig._instance, viaDelta._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
95
+ return RmiSequenceResponse(self._instance.CircularRelative(sequenceId, config._instance if config else None, delta._instance if delta else None, viaConfig._instance if viaConfig else None, viaDelta._instance if viaDelta else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, wristJoint, mrot, lcbType, lcbValue, portType, portNumber, portValue))
96
96
  def joint_motion_j_rep(self, sequenceId: int, joints: JointAngles, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
97
- return RmiSequenceResponse(self._instance.JointMotionJRep(sequenceId, joints._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
97
+ return RmiSequenceResponse(self._instance.JointMotionJRep(sequenceId, joints._instance if joints else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
98
98
  def joint_relative_j_rep(self, sequenceId: int, deltaJoints: JointAngles, speedType: SpeedType, speed: int, termType: TerminationType, termValue: int, acc: typing.Any, offsetPr: typing.Any, visionPr: typing.Any, mrot: bool, lcbType: str, lcbValue: typing.Any, portType: typing.Any, portNumber: typing.Any, portValue: typing.Any) -> RmiSequenceResponse:
99
- return RmiSequenceResponse(self._instance.JointRelativeJRep(sequenceId, deltaJoints._instance, speedType._instance, speed, termType._instance, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
99
+ return RmiSequenceResponse(self._instance.JointRelativeJRep(sequenceId, deltaJoints._instance if deltaJoints else None, speedType, speed, termType, termValue, acc, offsetPr, visionPr, mrot, lcbType, lcbValue, portType, portNumber, portValue))
100
100
  def dispose(self) -> None:
101
101
  self._instance.Dispose()
102
102
  @property
@@ -28,21 +28,9 @@ class RmiConnectParametersBase:
28
28
  @write_timeout_ms.setter
29
29
  def write_timeout_ms(self, value: int):
30
30
  self._instance.WriteTimeoutMs = value
31
- @property
32
- def defaul_t__port(self) -> int:
33
- return self._instance.DEFAULT_PORT
34
- @defaul_t__port.setter
35
- def defaul_t__port(self, value: int):
36
- self._instance.DEFAULT_PORT = value
37
- @property
38
- def defaul_t__rea_d__timeou_t__ms(self) -> int:
39
- return self._instance.DEFAULT_READ_TIMEOUT_MS
40
- @defaul_t__rea_d__timeou_t__ms.setter
41
- def defaul_t__rea_d__timeou_t__ms(self, value: int):
42
- self._instance.DEFAULT_READ_TIMEOUT_MS = value
43
- @property
44
- def defaul_t__writ_e__timeou_t__ms(self) -> int:
45
- return self._instance.DEFAULT_WRITE_TIMEOUT_MS
46
- @defaul_t__writ_e__timeou_t__ms.setter
47
- def defaul_t__writ_e__timeou_t__ms(self, value: int):
48
- self._instance.DEFAULT_WRITE_TIMEOUT_MS = value
31
+
32
+ RmiConnectParametersBase.defaul_t__port = RmiConnectParametersBase(rmi_connect_parameters_base.DEFAULT_PORT)
33
+
34
+ RmiConnectParametersBase.defaul_t__rea_d__timeou_t__ms = RmiConnectParametersBase(rmi_connect_parameters_base.DEFAULT_READ_TIMEOUT_MS)
35
+
36
+ RmiConnectParametersBase.defaul_t__writ_e__timeou_t__ms = RmiConnectParametersBase(rmi_connect_parameters_base.DEFAULT_WRITE_TIMEOUT_MS)
@@ -13,8 +13,8 @@ class BatchAssignment2(typing.Generic[TValue, TIndex]):
13
13
  self._instance = batch_assignment_2()
14
14
  else:
15
15
  self._instance = _internal
16
- def read(self) -> typing.Any:
17
- return self._instance.Read()
16
+ def read(self) -> typing.List[TValue]:
17
+ return list(self._instance.Read())
18
18
  @property
19
19
  def assignments(self) -> typing.List[Assignment1]:
20
20
  return [Assignment1(x) for x in self._instance.Assignments]
@@ -17,6 +17,6 @@ class PositionRegisters(SnpxWritableAssignableElements3[Position, int, PositionR
17
17
  else:
18
18
  self._instance = _internal
19
19
  def write(self, index: int, cartesianPosition: CartesianPosition) -> None:
20
- self._instance.Write(index, cartesianPosition._instance)
20
+ self._instance.Write(index, cartesianPosition._instance if cartesianPosition else None)
21
21
  def create_batch_assignment(self, startIndex: int, count: int) -> PositionRegistersBatchAssignment:
22
22
  return PositionRegistersBatchAssignment(self._instance.CreateBatchAssignment(startIndex, count))
@@ -17,4 +17,4 @@ class PositionSystemVariables(SnpxWritableAssignableElements3[Position, str, Pos
17
17
  else:
18
18
  self._instance = _internal
19
19
  def write(self, variable: str, cartesianPosition: CartesianPosition) -> None:
20
- self._instance.Write(variable, cartesianPosition._instance)
20
+ self._instance.Write(variable, cartesianPosition._instance if cartesianPosition else None)
@@ -1,6 +1,7 @@
1
1
  import typing
2
2
  from underautomation.fanuc.snpx.internal.alarm_id import AlarmId
3
3
  from underautomation.fanuc.snpx.internal.alarm_severity import AlarmSeverity
4
+ from underautomation.fanuc.common.languages import Languages
4
5
  import clr
5
6
  import os
6
7
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
@@ -13,10 +14,10 @@ class RobotAlarm:
13
14
  else:
14
15
  self._instance = _internal
15
16
  @staticmethod
16
- def from_bytes(bytes: typing.List[int], start: int=0) -> 'RobotAlarm':
17
- return RobotAlarm(robot_alarm.FromBytes(bytes, start))
17
+ def from_bytes(bytes: typing.List[int], language: Languages, start: int=0) -> 'RobotAlarm':
18
+ return RobotAlarm(robot_alarm.FromBytes(bytes, language, start))
18
19
  def equals(self, other: 'RobotAlarm') -> bool:
19
- return self._instance.Equals(other._instance)
20
+ return self._instance.Equals(other._instance if other else None)
20
21
  def __repr__(self):
21
22
  return self._instance.ToString()
22
23
  @property
@@ -1,5 +1,6 @@
1
1
  import typing
2
2
  from underautomation.fanuc.snpx.internal.robot_task_state import RobotTaskState
3
+ from underautomation.fanuc.common.languages import Languages
3
4
  import clr
4
5
  import os
5
6
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
@@ -12,10 +13,10 @@ class RobotTaskStatus:
12
13
  else:
13
14
  self._instance = _internal
14
15
  def equals(self, other: 'RobotTaskStatus') -> bool:
15
- return self._instance.Equals(other._instance)
16
+ return self._instance.Equals(other._instance if other else None)
16
17
  @staticmethod
17
- def from_bytes(bytes: typing.List[int], start: int=0) -> 'RobotTaskStatus':
18
- return RobotTaskStatus(robot_task_status.FromBytes(bytes, start))
18
+ def from_bytes(bytes: typing.List[int], language: Languages, start: int=0) -> 'RobotTaskStatus':
19
+ return RobotTaskStatus(robot_task_status.FromBytes(bytes, language, start))
19
20
  @property
20
21
  def program_name(self) -> str:
21
22
  return self._instance.ProgramName
@@ -10,6 +10,7 @@ from underautomation.fanuc.snpx.internal.digital_signals import DigitalSignals
10
10
  from underautomation.fanuc.snpx.internal.numeric_io import NumericIO
11
11
  from underautomation.fanuc.snpx.internal.current_position import CurrentPosition
12
12
  from underautomation.fanuc.snpx.internal.alarm_access import AlarmAccess
13
+ from underautomation.fanuc.common.languages import Languages
13
14
  from underautomation.fanuc.snpx.internal.assignment import Assignment
14
15
  import clr
15
16
  import os
@@ -126,5 +127,11 @@ class SnpxClientBase:
126
127
  def alarm_history(self) -> AlarmAccess:
127
128
  return AlarmAccess(self._instance.AlarmHistory)
128
129
  @property
130
+ def language(self) -> Languages:
131
+ return Languages(self._instance.Language)
132
+ @language.setter
133
+ def language(self, value: Languages):
134
+ self._instance.Language = value
135
+ @property
129
136
  def connected(self) -> bool:
130
137
  return self._instance.Connected
@@ -16,9 +16,5 @@ class SnpxConnectParametersBase:
16
16
  @port.setter
17
17
  def port(self, value: int):
18
18
  self._instance.Port = value
19
- @property
20
- def defaul_t__port(self) -> int:
21
- return self._instance.DEFAULT_PORT
22
- @defaul_t__port.setter
23
- def defaul_t__port(self, value: int):
24
- self._instance.DEFAULT_PORT = value
19
+
20
+ SnpxConnectParametersBase.defaul_t__port = SnpxConnectParametersBase(snpx_connect_parameters_base.DEFAULT_PORT)
@@ -16,5 +16,5 @@ class SnpxWritableAssignableElements3(SnpxAssignableElements2[TValue, TIndex], t
16
16
  self._instance = _internal
17
17
  def write(self, index: TIndex, value: TValue) -> None:
18
18
  self._instance.Write(index, value)
19
- def create_batch_assignment(self, indexes: typing.Any) -> TAssignment:
19
+ def create_batch_assignment(self, indexes: typing.List[TIndex]) -> TAssignment:
20
20
  return self._instance.CreateBatchAssignment(indexes)
@@ -1,4 +1,5 @@
1
1
  import typing
2
+ from underautomation.fanuc.common.languages import Languages
2
3
  from underautomation.fanuc.telnet.tp_coordinates import TpCoordinates
3
4
  from underautomation.fanuc.telnet.program_command_result import ProgramCommandResult
4
5
  from underautomation.fanuc.telnet.run_result import RunResult
@@ -28,7 +29,6 @@ import os
28
29
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
29
30
  from UnderAutomation.Fanuc.Telnet.Internal import TelnetClientBase as telnet_client_base
30
31
 
31
- 렫 = typing.TypeVar('렫')
32
32
  T = typing.TypeVar('T')
33
33
  class TelnetClientBase:
34
34
  def __init__(self, _internal = 0):
@@ -89,7 +89,7 @@ class TelnetClientBase:
89
89
  def run(self, program: str="None") -> RunResult:
90
90
  return RunResult(self._instance.Run(program))
91
91
  def set_port(self, port: KCLPorts, index: int, value: int) -> SetPortResult:
92
- return SetPortResult(self._instance.SetPort(port._instance, index, value))
92
+ return SetPortResult(self._instance.SetPort(port, index, value))
93
93
  def set_variable(self, name: str, value: float, program: str="None") -> SetVariableResult:
94
94
  return SetVariableResult(self._instance.SetVariable(name, value, program))
95
95
  def get_current_pose(self) -> GetCurrentPoseResult:
@@ -97,11 +97,11 @@ class TelnetClientBase:
97
97
  def get_variable(self, name: str, program: str="None") -> GetVariableResult:
98
98
  return GetVariableResult(self._instance.GetVariable(name, program))
99
99
  def simulate(self, port: KCLPorts, index: int, value: int) -> SimulateResult:
100
- return SimulateResult(self._instance.Simulate(port._instance, index, value))
100
+ return SimulateResult(self._instance.Simulate(port, index, value))
101
101
  def unsimulate_all(self) -> UnsimulateAllResult:
102
102
  return UnsimulateAllResult(self._instance.UnsimulateAll())
103
103
  def unsimulate(self, port: KCLPorts, index: int) -> UnsimulateResult:
104
- return UnsimulateResult(self._instance.Unsimulate(port._instance, index))
104
+ return UnsimulateResult(self._instance.Unsimulate(port, index))
105
105
  def send_custom_command(self, command: str) -> T:
106
106
  return self._instance.SendCustomCommand(command)
107
107
  def get_task_information(self, prog_name: str) -> TaskInformationResult:
@@ -122,6 +122,12 @@ class TelnetClientBase:
122
122
  def ip(self) -> str:
123
123
  return self._instance.IP
124
124
  @property
125
+ def language(self) -> Languages:
126
+ return Languages(self._instance.Language)
127
+ @language.setter
128
+ def language(self, value: Languages):
129
+ self._instance.Language = value
130
+ @property
125
131
  def tp_coordinates(self) -> TpCoordinates:
126
132
  return TpCoordinates(self._instance.TpCoordinates)
127
133
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: UnderAutomation.Fanuc
3
- Version: 2.3.0.0
3
+ Version: 3.1.1.0
4
4
  Summary: Quickly create applications that communicate with your Fanuc robots
5
5
  Home-page: https://underautomation.com/fanuc
6
6
  Author: UnderAutomation