UnderAutomation.Fanuc 2.2.0.0__py3-none-any.whl → 3.0.0.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 (45) hide show
  1. underautomation/fanuc/common/cartesian_position.py +14 -0
  2. underautomation/fanuc/common/configuration.py +20 -17
  3. underautomation/fanuc/common/extended_cartesian_position.py +2 -20
  4. underautomation/fanuc/common/joints_position.py +11 -2
  5. underautomation/fanuc/common/position.py +1 -1
  6. underautomation/fanuc/fanuc_robot.py +1 -1
  7. underautomation/fanuc/ftp/fanuc_file_readers.py +14 -21
  8. underautomation/fanuc/ftp/internal/ftp_client_base.py +0 -1
  9. underautomation/fanuc/ftp/list/errall_section_item.py +12 -9
  10. underautomation/fanuc/ftp/list/error_list.py +2 -0
  11. underautomation/fanuc/ftp/variables/generic_variable_type_helpers.py +2 -2
  12. underautomation/fanuc/ftp/variables/variable_reader.py +70 -106
  13. underautomation/fanuc/kinematics/__init__.py +0 -0
  14. underautomation/fanuc/kinematics/arm_kinematic_models.py +88 -0
  15. underautomation/fanuc/kinematics/crx/__init__.py +0 -0
  16. underautomation/fanuc/kinematics/crx/crx10ia_dhm_parameters.py +25 -0
  17. underautomation/fanuc/kinematics/crx/crx10ia_l_dhm_parameters.py +25 -0
  18. underautomation/fanuc/kinematics/crx/crx_dhm_parameters.py +37 -0
  19. underautomation/fanuc/kinematics/crx/crx_kinematics_utils.py +18 -0
  20. underautomation/fanuc/kinematics/crx/i_crx_dhm_parameters.py +24 -0
  21. underautomation/fanuc/kinematics/crx10ia_l_dhm_parameters.py +31 -0
  22. underautomation/fanuc/kinematics/dh_parameters.py +77 -0
  23. underautomation/fanuc/kinematics/i_dh_parameters.py +30 -0
  24. underautomation/fanuc/kinematics/internal/__init__.py +0 -0
  25. underautomation/fanuc/kinematics/internal/arm_model_attribute.py +31 -0
  26. underautomation/fanuc/kinematics/kinematics_category.py +9 -0
  27. underautomation/fanuc/kinematics/kinematics_utils.py +24 -0
  28. underautomation/fanuc/kinematics/opw/__init__.py +0 -0
  29. underautomation/fanuc/kinematics/opw/opw_kinematics_utils.py +21 -0
  30. underautomation/fanuc/lib/UnderAutomation.Fanuc.dll +0 -0
  31. underautomation/fanuc/lib/version.txt +1 -1
  32. underautomation/fanuc/rmi/internal/rmi_client_base.py +13 -13
  33. underautomation/fanuc/rmi/internal/rmi_connect_parameters_base.py +6 -18
  34. underautomation/fanuc/snpx/internal/batch_assignment_2.py +2 -2
  35. underautomation/fanuc/snpx/internal/position_registers.py +1 -1
  36. underautomation/fanuc/snpx/internal/position_system_variables.py +1 -1
  37. underautomation/fanuc/snpx/internal/robot_alarm.py +1 -1
  38. underautomation/fanuc/snpx/internal/robot_task_status.py +1 -1
  39. underautomation/fanuc/snpx/internal/snpx_connect_parameters_base.py +2 -6
  40. underautomation/fanuc/snpx/internal/snpx_writable_assignable_elements_3.py +1 -1
  41. underautomation/fanuc/telnet/internal/telnet_client_base.py +3 -4
  42. {underautomation_fanuc-2.2.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/METADATA +1 -1
  43. {underautomation_fanuc-2.2.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/RECORD +45 -28
  44. {underautomation_fanuc-2.2.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/WHEEL +0 -0
  45. {underautomation_fanuc-2.2.0.0.dist-info → underautomation_fanuc-3.0.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,24 @@
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.Crx import ICrxDhmParameters as i_crx_dhm_parameters
6
+
7
+ class ICrxDhmParameters:
8
+ def __init__(self, _internal = 0):
9
+ if(_internal == 0):
10
+ self._instance = i_crx_dhm_parameters()
11
+ else:
12
+ self._instance = _internal
13
+ @property
14
+ def a2(self) -> float:
15
+ return self._instance.A2
16
+ @property
17
+ def d4(self) -> float:
18
+ return self._instance.D4
19
+ @property
20
+ def d5(self) -> float:
21
+ return self._instance.D5
22
+ @property
23
+ def d6(self) -> float:
24
+ return self._instance.D6
@@ -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,21 @@
1
+ import typing
2
+ from underautomation.fanuc.common.cartesian_position import CartesianPosition
3
+ from underautomation.fanuc.kinematics.dh_parameters import DhParameters
4
+ from underautomation.fanuc.common.joints_position import JointsPosition
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 forward_kinematics(jointAnglesRad: typing.List[float], dhParameters: DhParameters) -> CartesianPosition:
18
+ return CartesianPosition(None, None, None, None, None, None, None, opw_kinematics_utils.ForwardKinematics(jointAnglesRad, dhParameters._instance if dhParameters else None))
19
+ @staticmethod
20
+ def inverse_kinematics(pose: CartesianPosition, dhParameters: DhParameters) -> typing.List[JointsPosition]:
21
+ 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.2.0.0
1
+ 3.0.0.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)
@@ -16,7 +16,7 @@ class RobotAlarm:
16
16
  def from_bytes(bytes: typing.List[int], start: int=0) -> 'RobotAlarm':
17
17
  return RobotAlarm(robot_alarm.FromBytes(bytes, start))
18
18
  def equals(self, other: 'RobotAlarm') -> bool:
19
- return self._instance.Equals(other._instance)
19
+ return self._instance.Equals(other._instance if other else None)
20
20
  def __repr__(self):
21
21
  return self._instance.ToString()
22
22
  @property
@@ -12,7 +12,7 @@ class RobotTaskStatus:
12
12
  else:
13
13
  self._instance = _internal
14
14
  def equals(self, other: 'RobotTaskStatus') -> bool:
15
- return self._instance.Equals(other._instance)
15
+ return self._instance.Equals(other._instance if other else None)
16
16
  @staticmethod
17
17
  def from_bytes(bytes: typing.List[int], start: int=0) -> 'RobotTaskStatus':
18
18
  return RobotTaskStatus(robot_task_status.FromBytes(bytes, start))
@@ -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)
@@ -28,7 +28,6 @@ import os
28
28
  clr.AddReference(os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "..", 'lib', 'UnderAutomation.Fanuc.dll')))
29
29
  from UnderAutomation.Fanuc.Telnet.Internal import TelnetClientBase as telnet_client_base
30
30
 
31
- 뼁 = typing.TypeVar('뼁')
32
31
  T = typing.TypeVar('T')
33
32
  class TelnetClientBase:
34
33
  def __init__(self, _internal = 0):
@@ -89,7 +88,7 @@ class TelnetClientBase:
89
88
  def run(self, program: str="None") -> RunResult:
90
89
  return RunResult(self._instance.Run(program))
91
90
  def set_port(self, port: KCLPorts, index: int, value: int) -> SetPortResult:
92
- return SetPortResult(self._instance.SetPort(port._instance, index, value))
91
+ return SetPortResult(self._instance.SetPort(port, index, value))
93
92
  def set_variable(self, name: str, value: float, program: str="None") -> SetVariableResult:
94
93
  return SetVariableResult(self._instance.SetVariable(name, value, program))
95
94
  def get_current_pose(self) -> GetCurrentPoseResult:
@@ -97,11 +96,11 @@ class TelnetClientBase:
97
96
  def get_variable(self, name: str, program: str="None") -> GetVariableResult:
98
97
  return GetVariableResult(self._instance.GetVariable(name, program))
99
98
  def simulate(self, port: KCLPorts, index: int, value: int) -> SimulateResult:
100
- return SimulateResult(self._instance.Simulate(port._instance, index, value))
99
+ return SimulateResult(self._instance.Simulate(port, index, value))
101
100
  def unsimulate_all(self) -> UnsimulateAllResult:
102
101
  return UnsimulateAllResult(self._instance.UnsimulateAll())
103
102
  def unsimulate(self, port: KCLPorts, index: int) -> UnsimulateResult:
104
- return UnsimulateResult(self._instance.Unsimulate(port._instance, index))
103
+ return UnsimulateResult(self._instance.Unsimulate(port, index))
105
104
  def send_custom_command(self, command: str) -> T:
106
105
  return self._instance.SendCustomCommand(command)
107
106
  def get_task_information(self, prog_name: str) -> TaskInformationResult:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: UnderAutomation.Fanuc
3
- Version: 2.2.0.0
3
+ Version: 3.0.0.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