[tuxdroid-svn] r726 - api/python/trunk
Status: Beta
Brought to you by:
ks156
From: jaguarondi <c2m...@c2...> - 2007-11-26 16:02:44
|
Author: jaguarondi Date: 2007-11-26 17:02:39 +0100 (Mon, 26 Nov 2007) New Revision: 726 Modified: api/python/trunk/tuxapi_class.py api/python/trunk/tuxapi_const.py Log: * Removed the charge inhibit status. * The charger led status is now a generalized charger status. The returned value is no longer a bool so the API should be modified in order to use the new states. (look for FIXME) * Added a couple of functions to retrieve the new status of the sound flash. This needs some firmware modifications which are still not committed yet. Modified: api/python/trunk/tuxapi_class.py =================================================================== --- api/python/trunk/tuxapi_class.py 2007-11-26 16:00:27 UTC (rev 725) +++ api/python/trunk/tuxapi_class.py 2007-11-26 16:02:39 UTC (rev 726) @@ -1087,7 +1087,7 @@ (STATUS_WINGS_MOTOR_BACKWARD, STATUS_SPIN_MOTOR_BACKWARD, STATUS_SPIN_MOTOR_FORWARD, STATUS_MOUTH_OPEN_POSITION, STATUS_MOUTH_CLOSED_POSITION, STATUS_HEAD_PUSH_POSITION, - STATUS_CHARGER_INHIBIT_SIGNAL, STATUS_WINGS_POSITION_SWITCH, + STATUS_WINGS_POSITION_SWITCH, STATUS_MOTOR_FOR_WINGS, STATUS_LEFT_BLUE_LED, STATUS_I2C_SDA_LINE, STATUS_I2C_SCL_LINE , STATUS_HEAD_MOTOR_FOR_MOUTH, STATUS_HEAD_MOTOR_FOR_EYES, @@ -1096,7 +1096,7 @@ STATUS_EYES_OPEN_POSITION_SWITCH, STATUS_EYES_CLOSED_POSITION_SWITCH, STATUS_LEFT_WING_PUSH, STATUS_RIGHT_WING_PUSH, STATUS_POWER_PLUG_SWITCH, STATUS_HEAD_PUSH_SWITCH, - STATUS_CHARGER_LED, STATUS_MUTE_STATUS, + STATUS_CHARGER, STATUS_MUTE_STATUS, STATUS_LIGHT_LEVEL, STATUS_EYES_POSITION_COUNTER, STATUS_MOUTH_POSITION_COUNTER, STATUS_WINGS_POSITION_COUNTER, STATUS_SPIN_POSITION_COUNTER, STATUS_RIGHT_BLUE_LED, @@ -2751,8 +2751,6 @@ line=line+"Mouth closed position->" if status[4]==DATAS_STATUS_HEAD_PUSH_POSITION: line=line+"Head push position->" - if status[4]==DATAS_STATUS_CHARGER_INHIBIT_SIGNAL: - line=line+"Charger inhibit signal->" if status[4]==DATAS_STATUS_WINGS_POSITION_SWITCH: line=line+"Wings position switch->" if status[4]==DATAS_STATUS_MOTOR_FOR_WINGS: @@ -2783,8 +2781,8 @@ line=line+"Power plug switch->" if status[4]==DATAS_STATUS_HEAD_PUSH_SWITCH: line=line+"Head push switch->" - if status[4]==DATAS_STATUS_CHARGER_LED_STATUS: - line=line+"Charger led status->" + if status[4]==DATAS_STATUS_CHARGER_STATUS: + line=line+"Charger status->" if status[4]==DATAS_STATUS_MUTE_STATUS: line=line+"Audio mute->" if status[4]==DATAS_STATUS_LIGHT_LEVEL: @@ -3030,12 +3028,12 @@ """ Get the status of the charger - Return 1 for charging and 0 for not charging + Return FIXME returns a value from charger_status enum Example: >>>var = tux.status.charger_state() """ - return self.get_one_status(DATAS_STATUS_CHARGER_LED_STATUS) + return self.get_one_status(DATAS_STATUS_CHARGER_STATUS) #-------------------------------------------------------------------------- # Get the last state of wings position switch status @@ -3383,7 +3381,7 @@ #-------------------------------------------------------------------------- def battery_level(self): """ - Get the last battery level + Get the last battery level measurement Return a tupple with the battery level and the status: (level, status) @@ -3531,7 +3529,7 @@ return self.get_one_status(DATAS_STATUS_RF_CONNECTED) #-------------------------------------------------------------------------- - # Get the number of sound in flash + # Get the number of sounds in flash #-------------------------------------------------------------------------- def get_sound_flash_count(self): """ @@ -3549,6 +3547,62 @@ """ return self.get_one_status(DATAS_STATUS_SOUND_COUNT) + #-------------------------------------------------------------------------- + # Get the flash usage as percentage + #-------------------------------------------------------------------------- + def flash_usage(self): + """ + Get the usage of the sound flash memory as a percentage filled + + Return a integer (0..100) + + Example: + >>> var = tux.status.flash_usage() + """ + return self.get_one_status(DATAS_STATUS_FLASH_USAGE) + + #-------------------------------------------------------------------------- + # Get the sound duration still available to record in the sound flash + #-------------------------------------------------------------------------- + def available_record_time(self): + """ + Get the sound duration still available to record in the sound flash + + Return a integer (0..255) + + Example: + >>> var = tux.status.available_record_time() + """ + return self.get_one_status(DATAS_STATUS_AVAILABLE_RECORD_TIME) + + #-------------------------------------------------------------------------- + # Get sound flash information + #-------------------------------------------------------------------------- + def sound_flash(self): + """ + Get sound flash information + + Return a tupple with: + (number_of_sounds, flash_usage, available_record_time) + number_of_sounds: number of sounds store in the sound flash + flash_usage: flash space percentage filled + available_record_time: time (in seconds) of free space + remaining in the flash + + Example: + >>> var = tux.status.sound_flash() + """ + if not self.parent.daemon.connected: + return 0 + frame = self.get(DATAS_STATUS_SOUND_FLASH) + try: + if len(frame) > 0: + return (ord(frame[5]), ord(frame[6]), ord(frame[7])) + else: + return 0 + except: + return 0 + #============================================================================== # TUXTCPCommunicator - daemon - class #============================================================================== @@ -4041,9 +4095,11 @@ tux.hw.alsa_devices_select tux.hw.audio_get_version tux.hw.behavior_get_version - tux.hw.donglerf_get_version + tux.hw.tuxrf_get_version + tux.hw.fuxrf_get_version + tux.hw.fuxusb_get_version tux.hw.oss_device - tux.hw.tuxrf_get_version + tux.hw.firmware_release_get_version """ #-------------------------------------------------------------------------- # Constructor of this class @@ -4066,7 +4122,7 @@ Not a user function """ if not self.parent.daemon.connected: - return (0,0,0,0,0) + return (0,0,0,0,0,0) data=(DEST_TUX,SD_DEFAULT,DATA_TP_REQ,SUBDATA_TP_INFO, \ TUX_REQ_INFO_VERSION,cpu_index,0,0,0,0,0,0,0,0,0,0) self.parent._sock_send_frame("".join( [chr(x) for x in data] )) @@ -4077,17 +4133,37 @@ ver_update=ord(frame[7]) revision=(ord(frame[8])<<8)+ord(frame[9]) author_id=(ord(frame[10])<<8)+ord(frame[11]) - return (ver_major,ver_minor,ver_update,revision,author_id) + released=ord(frame[12]) + return (ver_major,ver_minor,ver_update,revision,author_id, + released) #-------------------------------------------------------------------------- # Get the version of the behavior firmware #-------------------------------------------------------------------------- + def firmware_release_get_version(self): + """ + Get the version of the firmware release package + + Return a tuple : (major version, minor version, update version, + author_id) + + Example: + >>> print tux.hw.firmware_release_get_version() + """ + release = self.get_firmware_versioning(5) + # Need to remove 'revision' and 'released' from the tuple as that + # doesn't make sense in a release package + return release[:3]+tuple([release[4]]) + + #-------------------------------------------------------------------------- + # Get the version of the behavior firmware + #-------------------------------------------------------------------------- def behavior_get_version(self): """ Get the version of the behavior firmware Return a tuple : (major version, minor version, update version, - revision, author_id) + revision, author_id, released) Example: >>> print tux.hw.behavior_get_version() @@ -4102,7 +4178,7 @@ Get the version of the audio firmware Return a tuple : (major version, minor version, update version, - revision, author_id) + revision, author_id, released) Example: >>> print tux.hw.audio_get_version() @@ -4117,7 +4193,7 @@ Get the version of the tuxrf firmware Return a tuple : (major version, minor version, update version, - revision, author_id) + revision, author_id, released) Example: >>> print tux.hw.tuxrf_get_version() @@ -4127,19 +4203,34 @@ #-------------------------------------------------------------------------- # Get the version of the donglerf firmware #-------------------------------------------------------------------------- - def donglerf_get_version(self): + def fuxrf_get_version(self): """ Get the version of the donglerf firmware Return a tuple : (major version, minor version, update version, - revision, author_id) + revision, author_id, released) Example: - >>> print tux.hw.donglerf_get_version() + >>> print tux.hw.fuxrf_get_version() """ return self.get_firmware_versioning(3) #-------------------------------------------------------------------------- + # Get the version of fuxusb firmware + #-------------------------------------------------------------------------- + def fuxusb_get_version(self): + """ + Get the version of the donglerf firmware + + Return a tuple : (major version, minor version, update version, + revision, author_id, released) + + Example: + >>> print tux.hw.fuxusb_get_version() + """ + return self.get_firmware_versioning(4) + + #-------------------------------------------------------------------------- # Get the alsa devices #-------------------------------------------------------------------------- def alsa_devices_enumerate(self): Modified: api/python/trunk/tuxapi_const.py =================================================================== --- api/python/trunk/tuxapi_const.py 2007-11-26 16:00:27 UTC (rev 725) +++ api/python/trunk/tuxapi_const.py 2007-11-26 16:02:39 UTC (rev 726) @@ -126,7 +126,6 @@ DATAS_STATUS_MOUTH_OPEN_POSITION = 0x04 DATAS_STATUS_MOUTH_CLOSED_POSITION = 0x05 DATAS_STATUS_HEAD_PUSH_POSITION = 0x06 -DATAS_STATUS_CHARGER_INHIBIT_SIGNAL = 0x07 DATAS_STATUS_WINGS_POSITION_SWITCH = 0x08 DATAS_STATUS_MOTOR_FOR_WINGS = 0x09 DATAS_STATUS_LEFT_BLUE_LED = 0x0A @@ -144,7 +143,7 @@ DATAS_STATUS_RIGHT_WING_PUSH = 0x16 DATAS_STATUS_POWER_PLUG_SWITCH = 0x17 DATAS_STATUS_HEAD_PUSH_SWITCH = 0x18 -DATAS_STATUS_CHARGER_LED_STATUS = 0x19 +DATAS_STATUS_CHARGER_STATUS = 0x19 DATAS_STATUS_MUTE_STATUS = 0x1A DATAS_STATUS_LIGHT_LEVEL = 0x1B DATAS_STATUS_EYES_POSITION_COUNTER = 0x1C @@ -159,6 +158,9 @@ DATAS_STATUS_BATTERY = 0x25 DATAS_STATUS_MICRO_ENERGY = 0xF0 DATAS_STATUS_AUDIO = 0x26 +DATAS_STATUS_FLASH_USAGE = 0x27 +DATAS_STATUS_AVAILABLE_RECORD_TIME = 0x28 +DATAS_STATUS_SOUND_FLASH = 0x29 STATUS_WINGS_MOTOR_BACKWARD = 0x01 STATUS_SPIN_MOTOR_BACKWARD = 0x02 @@ -166,7 +168,6 @@ STATUS_MOUTH_OPEN_POSITION = 0x04 STATUS_MOUTH_CLOSED_POSITION = 0x05 STATUS_HEAD_PUSH_POSITION = 0x06 -STATUS_CHARGER_INHIBIT_SIGNAL = 0x07 STATUS_WINGS_POSITION_SWITCH = 0x08 STATUS_MOTOR_FOR_WINGS = 0x09 STATUS_LEFT_BLUE_LED = 0x0A @@ -184,7 +185,7 @@ STATUS_RIGHT_WING_PUSH = 0x16 STATUS_POWER_PLUG_SWITCH = 0x17 STATUS_HEAD_PUSH_SWITCH = 0x18 -STATUS_CHARGER_LED = 0x19 +STATUS_CHARGER = 0x19 STATUS_MUTE_STATUS = 0x1A STATUS_LIGHT_LEVEL = 0x1B STATUS_EYES_POSITION_COUNTER = 0x1C |