tma: Implement example set:sys getter service
This commit is contained in:
@@ -20,9 +20,16 @@ def main(argc, argv):
|
||||
print 'Waiting for connection...'
|
||||
c.wait_connected()
|
||||
print 'Connected!'
|
||||
c.intf.send_packet(Packet().set_service(ServiceId.ATMOSPHERE_TEST_SERVICE).set_task(0x01000000).write_u32(0x40))
|
||||
c.intf.send_packet(Packet().set_service(ServiceId.SETTINGS_SERVICE).set_task(0x01000000).set_cmd(0).write_str('lm').write_str('sd_card_log_output_directory'))
|
||||
resp = c.intf.read_packet()
|
||||
print resp.body
|
||||
success = resp.read_u8() != 0
|
||||
print 'Succeeded: %s' % str(success)
|
||||
if success:
|
||||
size = resp.read_u32()
|
||||
value = resp.body[resp.offset:resp.offset+size]
|
||||
print 'Value Size: 0x%x' % size
|
||||
print 'Value: %s' % repr(value)
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -70,6 +70,8 @@ class Packet():
|
||||
self.offset = 0
|
||||
return self
|
||||
def write_str(self, s):
|
||||
if s[-1] != '\x00':
|
||||
s += '\x00'
|
||||
self.body += s
|
||||
self.body_len += len(s)
|
||||
return self
|
||||
@@ -94,6 +96,8 @@ class Packet():
|
||||
while self.body[self.offset] != '\x00' and self.offset < self.body_len:
|
||||
s += self.body[self.offset]
|
||||
self.offset += 1
|
||||
if self.offset < self.body_len and self.body[self.offset] == '\x00':
|
||||
self.offset += 1
|
||||
def read_u8(self):
|
||||
x, = up('<B', self.body[self.offset:self.offset+1])
|
||||
self.offset += 1
|
||||
|
||||
@@ -25,5 +25,5 @@ USB_CONNECT = hash("USBConnect")
|
||||
USB_DISCONNECT = hash("USBDisconnect")
|
||||
|
||||
ATMOSPHERE_TEST_SERVICE = hash("AtmosphereTestService")
|
||||
|
||||
SETTINGS_SERVICE = hash ("SettingsService")
|
||||
|
||||
Reference in New Issue
Block a user