Difference between revisions of "IR Services"
Slashmolder (talk | contribs) |
|||
Line 70: | Line 70: | ||
| 0x00010182 | | 0x00010182 | ||
| | | | ||
− | | | + | | InitializeIrnop |
|- | |- | ||
| 0x00020000 | | 0x00020000 | ||
| | | | ||
− | | | + | | FinalizeIrnop |
|- | |- | ||
| 0x00030000 | | 0x00030000 | ||
| | | | ||
− | | | + | | ClearReceiveBuffer |
|- | |- | ||
| 0x00040000 | | 0x00040000 | ||
| | | | ||
− | | | + | | ClearSendBuffer |
|- | |- | ||
| 0x00050000 | | 0x00050000 | ||
| | | | ||
− | | | + | | WaitConnection |
|- | |- | ||
| 0x00060000 | | 0x00060000 | ||
| | | | ||
− | | | + | | RequireConnection |
|- | |- | ||
| 0x00070000 | | 0x00070000 | ||
| | | | ||
− | | | + | | AutoConnection |
|- | |- | ||
| 0x00080000 | | 0x00080000 | ||
| | | | ||
− | | | + | | AnyConnection |
|- | |- | ||
| 0x00090000 | | 0x00090000 | ||
| | | | ||
− | | | + | | Disconnect |
|- | |- | ||
| 0x000A0000 | | 0x000A0000 | ||
| | | | ||
− | | | + | | GetReceiveEvent |
|- | |- | ||
| 0x000B0000 | | 0x000B0000 | ||
| | | | ||
− | | | + | | GetSendEvent |
|- | |- | ||
| 0x000C0000 | | 0x000C0000 | ||
Line 118: | Line 118: | ||
| 0x000D0000 | | 0x000D0000 | ||
| | | | ||
− | | | + | | SendIrnop |
|- | |- | ||
| 0x000E0000 | | 0x000E0000 | ||
| | | | ||
− | | | + | | SendIrnopLarge |
|- | |- | ||
| 0x000F0000 | | 0x000F0000 | ||
| | | | ||
− | | | + | | ReceiveIrnop |
|- | |- | ||
| 0x00100000 | | 0x00100000 | ||
| | | | ||
− | | | + | | ReceiveIrnopLarge |
|- | |- | ||
| 0x00110000 | | 0x00110000 | ||
| | | | ||
− | | | + | | GetLatestReceiveErrorResult |
|- | |- | ||
| 0x00120000 | | 0x00120000 | ||
| | | | ||
− | | | + | | GetLatestSendErrorResult |
|- | |- | ||
| 0x00130000 | | 0x00130000 | ||
| | | | ||
− | | | + | | GetConnectionStatus |
|- | |- | ||
| 0x00140000 | | 0x00140000 | ||
| | | | ||
− | | | + | | GetTryingToConnectStatus |
|- | |- | ||
| 0x00150000 | | 0x00150000 | ||
| | | | ||
− | | | + | | GetReceiveSizeFreeAndUsed |
|- | |- | ||
| 0x00160000 | | 0x00160000 | ||
| | | | ||
− | | | + | | GetSendSizeFreeAndUsed |
|- | |- | ||
| 0x00170000 | | 0x00170000 | ||
| Unknown, >[[2.0.0-2]] | | Unknown, >[[2.0.0-2]] | ||
− | | | + | | GetConnectionRole |
|- | |- | ||
| 0x00180000 | | 0x00180000 | ||
Line 166: | Line 166: | ||
| 0x00190000 | | 0x00190000 | ||
| Unknown, >[[2.0.0-2]] | | Unknown, >[[2.0.0-2]] | ||
− | | | + | | ReleaseReceivedData |
|- | |- | ||
| 0x001A0000 | | 0x001A0000 | ||
| Unknown, >[[2.0.0-2]] | | Unknown, >[[2.0.0-2]] | ||
− | | | + | | SetOwnMachineId |
|} | |} | ||
Revision as of 23:34, 30 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 | InitializeIrnop | |
0x00020000 | FinalizeIrnop | |
0x00030000 | ClearReceiveBuffer | |
0x00040000 | ClearSendBuffer | |
0x00050000 | WaitConnection | |
0x00060000 | RequireConnection | |
0x00070000 | AutoConnection | |
0x00080000 | AnyConnection | |
0x00090000 | Disconnect | |
0x000A0000 | GetReceiveEvent | |
0x000B0000 | GetSendEvent | |
0x000C0000 | GetConnectionStatusEvent | |
0x000D0000 | SendIrnop | |
0x000E0000 | SendIrnopLarge | |
0x000F0000 | ReceiveIrnop | |
0x00100000 | ReceiveIrnopLarge | |
0x00110000 | GetLatestReceiveErrorResult | |
0x00120000 | GetLatestSendErrorResult | |
0x00130000 | GetConnectionStatus | |
0x00140000 | GetTryingToConnectStatus | |
0x00150000 | GetReceiveSizeFreeAndUsed | |
0x00160000 | GetSendSizeFreeAndUsed | |
0x00170000 | Unknown, >2.0.0-2 | GetConnectionRole |
0x00180000 | Unknown, >2.0.0-2 | InitializeIrnopShared |
0x00190000 | Unknown, >2.0.0-2 | ReleaseReceivedData |
0x001A0000 | Unknown, >2.0.0-2 | SetOwnMachineId |
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). Both of these services use IrDA-SIR. The IR hardware seems to only support IrDA-SIR, other physical protocols such as the one for TV-remotes are not supported(going by the datasheet linked here for a different IC at least).
The protocol used with IRUSER involves encryption implemented in software. IRUSER is used for the Circle Pad Pro.