IR Services: Difference between revisions
Socram8888 (talk | contribs) No edit summary |
|||
(6 intermediate revisions by 4 users not shown) | |||
Line 81: | Line 81: | ||
= IR Service "ir:USER" = | = IR Service "ir:USER" = | ||
{| class="wikitable" border="1" | |||
|- | |||
! Command Header | |||
! Available since system version | |||
! Description | |||
|- | |||
| 0x00010182 | |||
| [[2.0.0-2]] | |||
| [[IRUSER:InitializeIrnop|InitializeIrnop]] | |||
|- | |||
| 0x00020000 | |||
| [[2.0.0-2]] | |||
| FinalizeIrnop | |||
|- | |||
| 0x00030000 | |||
| [[2.0.0-2]] | |||
| ClearReceiveBuffer | |||
|- | |||
| 0x00040000 | |||
| [[2.0.0-2]] | |||
| ClearSendBuffer | |||
|- | |||
| 0x000500C0 | |||
| [[2.0.0-2]] | |||
| WaitConnection | |||
|- | |||
| 0x00060040 | |||
| [[2.0.0-2]] | |||
| RequireConnection (u8 input) | |||
|- | |||
| 0x000702C0 | |||
| [[2.0.0-2]] | |||
| AutoConnection | |||
|- | |||
| 0x00080000 | |||
| [[2.0.0-2]] | |||
| AnyConnection | |||
|- | |||
| 0x00090000 | |||
| [[2.0.0-2]] | |||
| Disconnect | |||
|- | |||
| 0x000A0000 | |||
| [[2.0.0-2]] | |||
| GetReceiveEvent (writes event handle to cmdreply[3]) | |||
|- | |||
| 0x000B0000 | |||
| [[2.0.0-2]] | |||
| GetSendEvent (writes event handle to cmdreply[3]) | |||
|- | |||
| 0x000C0000 | |||
| [[2.0.0-2]] | |||
| GetConnectionStatusEvent (writes event handle to cmdreply[3]) | |||
|- | |||
| 0x000D0042 | |||
| [[2.0.0-2]] | |||
| SendIrnop (u32 size, ((Size<<14) <nowiki>|</nowiki> 2), inbufptr) | |||
|- | |||
| 0x000E0042 | |||
| [[2.0.0-2]] | |||
| SendIrnopLarge (u32 size, ((Size<<8) <nowiki>|</nowiki> 10), inbufptr) | |||
|- | |||
| 0x000F0040 | |||
| [[2.0.0-2]] | |||
| ReceiveIrnop | |||
|- | |||
| 0x00100042 | |||
| [[2.0.0-2]] | |||
| ReceiveIrnopLarge | |||
|- | |||
| 0x0011.... | |||
| [[2.0.0-2]] | |||
| GetLatestReceiveErrorResult | |||
|- | |||
| 0x0012.... | |||
| [[2.0.0-2]] | |||
| GetLatestSendErrorResult | |||
|- | |||
| 0x0013.... | |||
| [[2.0.0-2]] | |||
| GetConnectionStatus | |||
|- | |||
| 0x0014.... | |||
| [[2.0.0-2]] | |||
| GetTryingToConnectStatus | |||
|- | |||
| 0x0015.... | |||
| [[2.0.0-2]] | |||
| GetReceiveSizeFreeAndUsed | |||
|- | |||
| 0x0016.... | |||
| [[2.0.0-2]] | |||
| GetSendSizeFreeAndUsed | |||
|- | |||
| 0x0017.... | |||
| [[2.2.0-X]] | |||
| GetConnectionRole | |||
|- | |||
| 0x00180182 | |||
| [[2.2.0-X]] | |||
| [[IRUSER:InitializeIrnopShared|InitializeIrnopShared]] | |||
|- | |||
| 0x00190040 | |||
| [[2.2.0-X]] | |||
| ReleaseReceivedData (32bit_value input) | |||
|- | |||
| 0x001A0040 | |||
| [[2.2.0-X]] | |||
| SetOwnMachineId (u8 input) | |||
|} | |||
This service was added with [[2.0.0-2]]. | |||
When sending data, SendIrnop is used when the size is <=0xFC, otherwise SendIrnopLarge is used. | |||
= IR Service "ir:rst" = | = IR Service "ir:rst" = | ||
Line 134: | Line 247: | ||
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 [[Hardware|here]] for a different IC at least). | 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 [[Hardware|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]]. This same IRUSER service uses the New3DS HID hardware when running on New3DS | The protocol used with IRUSER involves encryption(?) implemented in software. IRUSER is used for the [[Circle Pad Pro]]. This same IRUSER service uses the New3DS HID hardware when running on New3DS. Note that the main service for New3DS HID is ir:rst, and these two service are mutually exclusive: when one is initialized and reading data from New3DS HID, the other cannot access it. |