.getProtocolVersion() request packet format [width="100%",cols="1*^.^h,8*^.^",options="header"] |============================================================================= | byte \ bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 0 8+| zero | 1 8+| zero | 2 8+| pingData |============================================================================= ==== Returns protocolNum:: The protocol number is a field that hints the host software if it should support the device. + +protocolNum = 2+ : Intended target SW is Logitech SetPoint + +protocolNum = 3+ : Intended OEM SW described in targetSw field + +protocolNum = 4+ : Intended target SW described in targetSw field targetSw:: When (+protocolNum >= 3+) this field further hints at which software should support the device. Otherwise the value is zero. pingData:: Echoes the ping paramenter as sent in the request. For recovery from timeouts or collisions. .getProtocolVersion() response packet format [width="100%",cols="1*^.^h,8*^.^",options="header"] |============================================================================= | byte \ bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 0 8+| protocolNum | 1 8+| targetSw | 2 8+| pingData |============================================================================= [NOTE] On ping data usage: Ping data can be used by the SW to re-synchronize the command/response data flow in case of collision or timeout. Whenever an incorrect response is received or a command times out, the SW should send a ping request and wait for a response with the correct ping data. The ping data sent should be a random nonzero value which does not match the previous ping request that was sent. If the SW is sending a protocol request instead of a ping request the ping value should be 0 [width="100%",cols="1*^.^h,8*^.^",options="header"] |============================================================================= | targetSw byte | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | meaning for protocol 4 | TSF | --- | --- | --- | --- | LPM | LGS | LDM |============================================================================= LDM:: Logitech Device Manager (Windows) is the intended target SW if this bit is set. LGS:: Logitech Gaming Software is the intended target SW if this bit is set. LPM:: Logitech Preference (Mac) Manager is the intended target SW if this bit is set. TSF:: Target Software Feature: feature 0x0030 specifies the Target Software if this bit is set.