Difference between revisions of "IR Services"
Line 189: | Line 189: | ||
|- | |- | ||
| 0x00040000 | | 0x00040000 | ||
− | | This writes an unknown u8 to index-word cmdreply[2]. | + | | This writes an unknown u8 to index-word cmdreply[2], from data loaded from an I2C device register. |
|- | |- | ||
| 0x00050000 | | 0x00050000 |
Revision as of 04:29, 8 September 2014
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 | GetHandles |
0x00020080 | Initialize |
0x00030000 | Shutdown |
0x00040000 | This writes an unknown u8 to index-word cmdreply[2], from data loaded from an I2C device register. |
0x00050000 | This writes an unknown u8 from IR-module state to index-word cmdreply[2]. |
0x00060000 | This writes two unknown u8 fields from IR-module state to index-word cmdreply[2] and cmdreply[3]. |
This service was added with 8.0.0-18. Unlike the other IR services, this uses I2C deviceid 17(this deviceid isn't actually handled by the 8.0.0-18 I2C module). Therefore, this is probably for the new IR LED for the New 3DS.
IR Services
Only one session(two sessions starting with 8.0.0-18) to any of these services can be open at a time, thus only one/two process(es) can use any 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.