Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 from abs_hand_command import AbsractHandCommand
00038
00039
00040 class ToolchangerCommand(AbsractHandCommand):
00041 '''
00042 Following Command design pattern, this class represents commands for
00043 a toolchanger of NEXTAGE OPEN.
00044 '''
00045
00046
00047
00048 HAND_TOOLCHANGE_ON = 'toolchange_on'
00049 HAND_TOOLCHANGE_OFF = 'toolchange_off'
00050
00051 def __init__(self, hands, hand, dio_pins):
00052 super(ToolchangerCommand, self).__init__(hands, hand, dio_pins)
00053
00054 def _assign_dio_names(self, dio_pins):
00055 '''
00056 @see abs_hand_command.AbsractHandCommand._assign_dio_names
00057 '''
00058 self._DIO_VALVE5PORT_L = dio_pins[0]
00059 self._DIO_AIR_DRAWIN_L = dio_pins[1]
00060 self._DIO_AIR_RELEASE_L = dio_pins[2]
00061 self._DIO_VALVE5PORT_R = dio_pins[3]
00062 self._DIO_AIR_DRAWIN_R = dio_pins[4]
00063 self._DIO_AIR_RELEASE_R = dio_pins[5]
00064
00065 def execute(self, operation):
00066 '''
00067 @see abs_hand_command.AbsractHandCommand.execute
00068 '''
00069 dout = []
00070
00071
00072
00073
00074
00075 mask = []
00076 if self.HAND_TOOLCHANGE_ON == operation:
00077 if self._hands.HAND_L == self._hand:
00078
00079 mask = [self._DIO_VALVE5PORT_L]
00080 elif self._hands.HAND_R == self._hand:
00081 mask = [self._DIO_VALVE5PORT_R]
00082 elif self.HAND_TOOLCHANGE_OFF == operation:
00083 if self._hands.HAND_L == self._hand:
00084
00085
00086 mask.append(self._DIO_VALVE5PORT_L)
00087 mask.append(self._DIO_AIR_DRAWIN_L)
00088 dout = [self._DIO_VALVE5PORT_L]
00089 elif self._hands.HAND_R == self._hand:
00090 mask.append(self._DIO_VALVE5PORT_R)
00091 mask.append(self._DIO_AIR_DRAWIN_R)
00092 dout = [self._DIO_VALVE5PORT_R]
00093 return self._hands._dio_writer(dout, mask)
00094
00095 def release_ejector(self, hand=None, on=True):
00096 '''
00097 @deprecated: TODO: need to figure out how this can be used. Until
00098 then, set derprecated.
00099 '''
00100 dout = []
00101 mask = []
00102 if on:
00103 if self.HAND_R == hand:
00104
00105
00106 dout = mask = [self._DIO_EJECTOR_R_1, self._DIO_EJECTOR_R_2]
00107 elif self.HAND_L == hand:
00108 dout = mask = [self._DIO_EJECTOR_L_1, self._DIO_EJECTOR_L_2]
00109 elif not hand:
00110 dout = mask = [self._DIO_EJECTOR_R_1, self._DIO_EJECTOR_R_2,
00111 self._DIO_EJECTOR_L_1, self._DIO_EJECTOR_L_2]
00112 else:
00113 if self.HAND_R == hand:
00114 mask = [self._DIO_EJECTOR_R_1, self._DIO_EJECTOR_R_2]
00115 elif self.HAND_L == hand:
00116 mask = [self._DIO_EJECTOR_L_1, self._DIO_EJECTOR_L_2]
00117 elif not hand:
00118 mask = [self._DIO_EJECTOR_R_1, self._DIO_EJECTOR_R_2,
00119 self._DIO_EJECTOR_L_1, self._DIO_EJECTOR_L_2]
00120 return self._hands._dio_writer(dout, mask)