Sunday, October 24, 2004

IOCards - SIOC and IOCP

A quick progress report before jumping into the title topic.

- Making steady progress with flying in the sim. Learning navigation and using FMC (CDU).
- Bought 2 PSOne lcd screens (more on this later) on ebay as an advance preparation for building CDUs. I will be hacking them later to accept VGA signal. Expecting the delivery tomorrow.

Now to the main topic.

This week, came a long way in my understanding about IOCards SIOC and IOCP software. Information about these is scattered and not concisely described in any single place. Unfortunately, the english SIOC user documentation doesn't give a good overview of the landscape. Hopefully, this summary note gets you off a good start.

Though IOCP and SIOC can also talk to XPlane and other dedicated IOCP servers, this discussion focuses on FS9 only.

First, IOCP is a communication protocol (not an application) for efficient network communication between IOCP clients and IOCP Server components. if you know IOCP protocol details, you can write your own IOCP client and connect to IOCP servers such as IOCP.exe or IOCPServer.dll).

On the other hand, SIOC is an application suite built using IOCP protocol. It contains both an IOCP Client module (besides other type of client modules) and an IOCP Server component. You can use it for:
a) controlling IOCards hardware using powerful scripting environment
b) communicating with simulator software such as FS9 (via IOCPServer.dll), X-plane and OnBoeing-737 using IOCP protocol
c) communicating the IOCards hardware status with FSUIPC dll using non-IOCP protocol.

Before we go into the details of sioc, let me clarify the confusion around sioc and IOCPServer.dll. IOCPServer.dll is a special purpose FS9 add-on module that gets installed into FS9 similar to the way FSUIPC is installed. It does the job similar to FSUIPC. However, it is also a IOCP Server. So IOCP client (such as SIOC's IOCP Client module) can connect to it while it is loaded into FS9 and communicate with it. For simple understanding, IOCPServer.dll is a combination of FSUIPC and "WideFS server" combined together in one.

The main sioc program "sioc.exe" can be thought of as both a IOCP server and sometimes as client as well. It contains the following 3 major client modules:

1) An IOCP client module that connects to another IOCP server available anywhere on the network. Two such servers that this module can connect to are a) another instance of SIOC.exe on the network or b) a special purpose IOCP server such as flight simulator's add-on module called IOCPserver.dll which does the same job as FSUIPC)

2) other special client module (doesn't use IOCP) that connects to the IOCards hardware installed on the same host and help control the hardware

3) a special FSUIPC client module that connects to FSUIPC.dll (installed inside FS9 and running anywhere on the network).

to be completed....