Dealing With Multiplicities: Instancing.

One of the fundamental issues RV-C had to address is the plethora of devices in an RV that have multiple installations. An RV may have seven or more awnings, four climate control zones, two or more inverters, and dozens of lights, keypads, and the ilk. This factor had to be addressed in a simple, direct manner. The means the committee devised is called "Instancing".

Devices in RV-C are defined as either single-instance or multiple-instance. Frankly, there are very few of the former items - generator and chassis being the most obvious. Data packets for these devices have no special provisions for identifying the source or target of the packet. But data packets involving multiple-instance devices always have as the first data byte the "Instance" for the source or target device.

The Instance is completely distinct from the Source Address - in fact, the SA is irrelevant to parsing the data packet. The Instance is always a single data byte, usually with a value from 1 to 250. (Some devices have limitations on the range of values, and some devices have more complicated schemes.) In most cases the value is arbitrary, though for some devices RV-C assigns a specific meaning to certain numbers. In almost all cases, zero is not a valid Instance.

For example, for an Awning Instance 1 is defined as the Main Patio Awning. A large RV may have several smaller awnings assigned Instances 2 and higher. Any command to the patio awning would have a first data byte of 1, and any status information about that awning would also have the same first data byte. The same would be true for the other awnings, with the appropriate Instance put in the first data byte.

RV-C does not specify how the Instance is assigned to a device. A general PGN is provided, but manufacturers may also use dip switches, jumpers, or even hard-coding to establish which physical device is assigned each Instance.

The Instances always refer to the physical device, rather than the microprocessor node. A single microprocessor might handle several device Instances. For example, a wall thermostat may handle several climate control zones. The microprocessor in that thermostat would send and parse messages for each climate control zone Instance independently.

The use of Instances forces RV-C to use a unique scheme for diagnostic messages. This is one of the few ways RV-C differs materially from SAE J1939.