IR Services

From 3dbrew
Revision as of 05:15, 7 September 2014 by Yellows8 (talk | contribs) (IR Service "ir:rst")
Jump to: navigation, search

IR Service "ir:u"

Command Header Description
0x00010000 Initialize
0x00020000 Shutdown
0x00030042 StartSendTransfer
0x00040000 WaitSendTransfer
0x000500C2 StartRecvTransfer
0x00060000 WaitRecvTransfer
0x00070000 GetRecvTransferCount
0x00080000 GetSendState
0x00090040 SetBitRate
0x000A0000 GetBitRate
0x000B0040 SetIRLEDState
0x000C0000 GetIRLEDRecvState
0x000D0000 GetSendFinishedEvent
0x000E0000 GetRecvFinishedEvent
0x000F0000 GetTransferState
0x00100000
0x00110040 SetSleepModeActive
0x00120040 SetSleepModeState

IR Service "ir:USER"

Command Header Available since system version Description
0x00010182 Initialize
0x00020000 Shutdown
0x00030000 ?
0x00040000 ?
0x00050000 ?
0x00060000 ?
0x00070000 ?
0x00080000 ?
0x00090000 ?
0x000A0000 ?
0x000B0000 ?
0x000C0000 GetConnectionStatusEvent
0x000D0000 ?
0x000E0000 ?
0x000F0000 ?
0x00100000 ?
0x00110000 ?
0x00120000 ?
0x00130000 ?
0x00140000 ?
0x00150000 ?
0x00160000 ?
0x00170000 Unknown, >2.0.0-2 ?
0x00180000 Unknown, >2.0.0-2 InitializeIrnopShared
0x00190000 Unknown, >2.0.0-2 ?
0x001A0000 Unknown, >2.0.0-2 ?

IR Service "ir:rst"

Command Header Description
0x00010000 This writes two handles to index-word cmdreply[3] and cmdreply[4].
0x00020080 (u32 unk0, u8 unk1) ?
0x00030000 ?
0x00040000 This writes an unknown u8 to index-word cmdreply[2].
0x00050000 This writes an unknown u8 to index-word cmdreply[2].
0x00060000 This writes two unknown u8 fields to index-word cmdreply[2] and cmdreply[3].

This service was added with 8.0.0-18.

IR Services

Only one session to either of these services can be open at a time, thus only one process can use either of these services at once. These services interface with hardware services gpio::IR and i2c::IR. The i2c::IR service is used for sending/receiving data.

IRU is for regular IR comms. IRUSER uses a custom IR protocol(above the physical layer). The IR hardware operates in the IrDA SIR mode by default, IRU doesn't have an interface for using other modes(such as the one for TV-remotes) via hardware.

The protocol used with IRUSER involves encryption implemented in software. IRUSER is used for the Circle Pad Pro.