@@ -1443,7 +1443,36 @@ def poll_ms(self, value):
14431443
14441444
14451445# ~autogen
1446- # ~autogen generic-class specialSensorTypes.colorSensor>currentClass
1446+
1447+
1448+ # ~autogen special-sensors
1449+
1450+ class TouchSensor (Sensor ):
1451+
1452+ """
1453+ Touch Sensor
1454+ """
1455+
1456+ SYSTEM_CLASS_NAME = Sensor .SYSTEM_CLASS_NAME
1457+ SYSTEM_DEVICE_NAME_CONVENTION = Sensor .SYSTEM_DEVICE_NAME_CONVENTION
1458+
1459+ def __init__ (self , address = None , name_pattern = SYSTEM_DEVICE_NAME_CONVENTION , name_exact = False , ** kwargs ):
1460+ if address is not None :
1461+ kwargs ['address' ] = address
1462+ Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-ev3-touch' , 'lego-nxt-touch' ], ** kwargs )
1463+
1464+ # Button state
1465+ MODE_TOUCH = 'TOUCH'
1466+
1467+
1468+ def is_pressed ():
1469+ """
1470+ A boolean indicating whether the current touch sensor is being
1471+ pressed.
1472+ """
1473+ self .mode = MODE_TOUCH
1474+ return self .value (0 )
1475+
14471476
14481477class ColorSensor (Sensor ):
14491478
@@ -1459,10 +1488,6 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
14591488 kwargs ['address' ] = address
14601489 Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-ev3-color' ], ** kwargs )
14611490
1462-
1463- # ~autogen
1464- # ~autogen generic-property-value specialSensorTypes.colorSensor>currentClass
1465-
14661491 # Reflected light. Red LED on.
14671492 MODE_COL_REFLECT = 'COL-REFLECT'
14681493
@@ -1479,8 +1504,56 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
14791504 MODE_RGB_RAW = 'RGB-RAW'
14801505
14811506
1482- # ~autogen
1483- # ~autogen generic-class specialSensorTypes.ultrasonicSensor>currentClass
1507+ def reflected_light_intensity ():
1508+ """
1509+ Reflected light intensity as a percentage. Light on sensor is red.
1510+ """
1511+ self .mode = MODE_COL_REFLECT
1512+ return self .value (0 )
1513+
1514+ def ambient_light_intensity ():
1515+ """
1516+ Ambient light intensity. Light on sensor is dimly lit blue.
1517+ """
1518+ self .mode = MODE_COL_AMBIENT
1519+ return self .value (0 )
1520+
1521+ def color ():
1522+ """
1523+ Color detected by the sensor, categorized by overall value.
1524+ - 0: No color
1525+ - 1: Black
1526+ - 2: Blue
1527+ - 3: Green
1528+ - 4: Yellow
1529+ - 5: Red
1530+ - 6: White
1531+ - 7: Brown
1532+ """
1533+ self .mode = MODE_COL_COLOR
1534+ return self .value (0 )
1535+
1536+ def red ():
1537+ """
1538+ Red component of the detected color, in the range 0-1020.
1539+ """
1540+ self .mode = MODE_RGB_RAW
1541+ return self .value (0 )
1542+
1543+ def green ():
1544+ """
1545+ Green component of the detected color, in the range 0-1020.
1546+ """
1547+ self .mode = MODE_RGB_RAW
1548+ return self .value (1 )
1549+
1550+ def blue ():
1551+ """
1552+ Blue component of the detected color, in the range 0-1020.
1553+ """
1554+ self .mode = MODE_RGB_RAW
1555+ return self .value (2 )
1556+
14841557
14851558class UltrasonicSensor (Sensor ):
14861559
@@ -1496,10 +1569,6 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
14961569 kwargs ['address' ] = address
14971570 Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-ev3-us' , 'lego-nxt-us' ], ** kwargs )
14981571
1499-
1500- # ~autogen
1501- # ~autogen generic-property-value specialSensorTypes.ultrasonicSensor>currentClass
1502-
15031572 # Continuous measurement in centimeters.
15041573 MODE_US_DIST_CM = 'US-DIST-CM'
15051574
@@ -1516,8 +1585,30 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
15161585 MODE_US_SI_IN = 'US-SI-IN'
15171586
15181587
1519- # ~autogen
1520- # ~autogen generic-class specialSensorTypes.gyroSensor>currentClass
1588+ def distance_centimeters ():
1589+ """
1590+ Measurement of the distance detected by the sensor,
1591+ in centimeters.
1592+ """
1593+ self .mode = MODE_US_DIST_CM
1594+ return self .value (0 )
1595+
1596+ def distance_inches ():
1597+ """
1598+ Measurement of the distance detected by the sensor,
1599+ in inches.
1600+ """
1601+ self .mode = MODE_US_DIST_IN
1602+ return self .value (0 )
1603+
1604+ def other_sensor_present ():
1605+ """
1606+ Value indicating whether another ultrasonic sensor could
1607+ be heard nearby.
1608+ """
1609+ self .mode = MODE_US_LISTEN
1610+ return self .value (0 )
1611+
15211612
15221613class GyroSensor (Sensor ):
15231614
@@ -1533,10 +1624,6 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
15331624 kwargs ['address' ] = address
15341625 Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-ev3-gyro' ], ** kwargs )
15351626
1536-
1537- # ~autogen
1538- # ~autogen generic-property-value specialSensorTypes.gyroSensor>currentClass
1539-
15401627 # Angle
15411628 MODE_GYRO_ANG = 'GYRO-ANG'
15421629
@@ -1553,8 +1640,21 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
15531640 MODE_GYRO_CAL = 'GYRO-CAL'
15541641
15551642
1556- # ~autogen
1557- # ~autogen generic-class specialSensorTypes.infraredSensor>currentClass
1643+ def angle ():
1644+ """
1645+ The number of degrees that the sensor has been rotated
1646+ since it was put into this mode.
1647+ """
1648+ self .mode = MODE_GYRO_ANG
1649+ return self .value (0 )
1650+
1651+ def rate ():
1652+ """
1653+ The rate at which the sensor is rotating, in degrees/second.
1654+ """
1655+ self .mode = MODE_GYRO_RATE
1656+ return self .value (0 )
1657+
15581658
15591659class InfraredSensor (Sensor ):
15601660
@@ -1570,10 +1670,6 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
15701670 kwargs ['address' ] = address
15711671 Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-ev3-ir' ], ** kwargs )
15721672
1573-
1574- # ~autogen
1575- # ~autogen generic-property-value specialSensorTypes.infraredSensor>currentClass
1576-
15771673 # Proximity
15781674 MODE_IR_PROX = 'IR-PROX'
15791675
@@ -1590,8 +1686,14 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
15901686 MODE_IR_CAL = 'IR-CAL'
15911687
15921688
1593- # ~autogen
1594- # ~autogen generic-class specialSensorTypes.soundSensor>currentClass
1689+ def proximity ():
1690+ """
1691+ A measurement of the distance between the sensor and the remote,
1692+ as a percentage. 100% is approximately 70cm/27in.
1693+ """
1694+ self .mode = MODE_IR_PROX
1695+ return self .value (0 )
1696+
15951697
15961698class SoundSensor (Sensor ):
15971699
@@ -1607,19 +1709,29 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
16071709 kwargs ['address' ] = address
16081710 Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-nxt-sound' ], ** kwargs )
16091711
1610-
1611- # ~autogen
1612- # ~autogen generic-property-value specialSensorTypes.soundSensor>currentClass
1613-
16141712 # Sound pressure level. Flat weighting
16151713 MODE_DB = 'DB'
16161714
16171715 # Sound pressure level. A weighting
16181716 MODE_DBA = 'DBA'
16191717
16201718
1621- # ~autogen
1622- # ~autogen generic-class specialSensorTypes.lightSensor>currentClass
1719+ def sound_pressure ():
1720+ """
1721+ A measurement of the measured sound pressure level, as a
1722+ percent. Uses a flat weighting.
1723+ """
1724+ self .mode = MODE_DB
1725+ return self .value (0 )
1726+
1727+ def sound_pressure_low ():
1728+ """
1729+ A measurement of the measured sound pressure level, as a
1730+ percent. Uses A-weighting, which focuses on levels up to 55 dB.
1731+ """
1732+ self .mode = MODE_DBA
1733+ return self .value (0 )
1734+
16231735
16241736class LightSensor (Sensor ):
16251737
@@ -1635,36 +1747,31 @@ def __init__(self, address=None, name_pattern=SYSTEM_DEVICE_NAME_CONVENTION, nam
16351747 kwargs ['address' ] = address
16361748 Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-nxt-light' ], ** kwargs )
16371749
1638-
1639- # ~autogen
1640- # ~autogen generic-property-value specialSensorTypes.lightSensor>currentClass
1641-
16421750 # Reflected light. LED on
16431751 MODE_REFLECT = 'REFLECT'
16441752
16451753 # Ambient light. LED off
16461754 MODE_AMBIENT = 'AMBIENT'
16471755
16481756
1649- # ~autogen
1650- # ~autogen generic-class specialSensorTypes.touchSensor>currentClass
1651-
1652- class TouchSensor (Sensor ):
1653-
1654- """
1655- Touch Sensor
1656- """
1757+ def reflected_light_intensity ():
1758+ """
1759+ A measurement of the reflected light intensity, as a percentage.
1760+ """
1761+ self .mode = MODE_REFLECT
1762+ return self .value (0 )
16571763
1658- SYSTEM_CLASS_NAME = Sensor .SYSTEM_CLASS_NAME
1659- SYSTEM_DEVICE_NAME_CONVENTION = Sensor .SYSTEM_DEVICE_NAME_CONVENTION
1764+ def ambient_light_intensity ():
1765+ """
1766+ A measurement of the ambient light intensity, as a percentage.
1767+ """
1768+ self .mode = MODE_AMBIENT
1769+ return self .value (0 )
16601770
1661- def __init__ (self , address = None , name_pattern = SYSTEM_DEVICE_NAME_CONVENTION , name_exact = False , ** kwargs ):
1662- if address is not None :
1663- kwargs ['address' ] = address
1664- Device .__init__ (self , self .SYSTEM_CLASS_NAME , name_pattern , name_exact , driver_name = ['lego-ev3-touch' , 'lego-nxt-touch' ], ** kwargs )
16651771
16661772
16671773# ~autogen
1774+
16681775# ~autogen generic-class classes.led>currentClass
16691776
16701777class Led (Device ):
0 commit comments