/* * write commands to the indicated connection. writes the data contained * in command, up to commandlen. * * Returns: * 0 if everything goes OK * -1 if something went wrong (you should probably close the connection!) */ int player_write(player_connection_t* conn, uint16_t device, uint16_t device_index, const char* command, size_t commandlen);
This function will build the appropriate message header, including appropriate byte-swapping of the fields. The first commandlen bytes of command will be copied in as the payload of a messge that will be sent to the server. Note that the caller must byte-swap the contents of the command itself. A simple example that tells the 0th position device to spin in place:
... player_position_cmd_t cmd; cmd.speed = htons(0); cmd.turnrate = htons(40); if(player_write(&conn, PLAYER_POSITION_CODE, 0, (char*)&cmd, sizeof(player_position_cmd_t)) == -1) exit(1); ...