Piztor Transmission Protocol v0.3a ---------------------------------- - General - Request :: +---4b---+---1b---+-------?b--------+ | LENGTH | OPT_ID | SPECIFIC DATA | +--int---+-uchar--+-----------------+ - Response :: +---4b---+---1b---+------?b---------+ | LENGTH | OPT_ID | SPECIFIC DATA | +--int---+-uchar--+-----------------+ Notice: - In following sections, ``LENGTH`` part is left out for clarity. - ``PADDING`` has value ``0``. - ``AUTH_HEAD`` structure: :: +----32b-----+----?b----+----1b---+ | USER_TOKEN | USERNAME | PADDING | +----raw-----+----------+---------+ - Authentication - Request :: +--1b---+-----?b------+----1b----+-----?b-----+ | 0x00 | USERNAME | PADDING | PASSWORD | +-uchar-+-------------+----------+------------+ - Response :: +--1b---+---1b---+---4b----+----32b-----+ | 0x00 | STATUS | USER_ID | USER_TOKEN | +-uchar-+--uchar-+---int---+----raw-----+ ``STATUS`` : - ``0x00`` for success - ``0x01`` for failure - Location Update - Request :: +--1b---+-----?b------+----8b------+------8b-----+ | 0x01 | AUTH_HEAD | LATITUDE | LONGITUDE | +-uchar-+-------------+---double---+---double----+ - Response :: +--1b---+---1b---+ | 0x01 | STATUS | +-uchar-+--uchar-+ ``STATUS`` : - ``0x00`` for success - ``0x01`` for invalid token - Location Information - Request :: +--1b---+------?b------+------4b-----+ | 0x02 | AUTH_HEAD | GROUP_ID | +-uchar-+--------------+-----int-----+ - Response :: +--1b---+---1b---+-----4b----+------20b-------+-----+ | 0x02 | STATUS | ENTRY_CNT | LOCATION_ENTRY | ... | +-uchar-+-uchar--+----int----+----------------+-----+ ``LOCATION_ENTRY`` : :: +---4b----+----8b----+-----8b----+ | USER_ID | LATITUDE | LONGITUDE | +---int---+--double--+--double---+ - User Information - Request :: +--1b---+------?b------+------4b-----+ | 0x03 | AUTH_HEAD | USER_ID | +-uchar-+--------------+-----int-----+ - Response :: +--1b---+---1b---+------?b-----+-----+ | 0x03 | STATUS | UINFO_ENTRY | ... | +-uchar-+-uchar--+-------------+-----+ ``UINFO_ENTRY`` : :: +----1b----+-----?b-----+---1b----+ | INFO_KEY | INFO_VALUE | PADDING | +--uchar---+------------+---------+ ``INFO_KEY`` : :``0x00``: gid (value is a 4-byte ``long int``) :``0x01``: sex (value is a 1-byte ``boolean``: ``0x01`` for male, ``0x00`` for female)