static HANDLE_FUNC (handle_port)
{
        set_int_arg (&conf->port, line, &match[2]);

        if (conf->port > 65535) {
                fprintf (stderr, "Bad port number (%d) supplied for Port.\n",
                         conf->port);
                return 1;
        }

        return 0;
}
void agent_act(unsigned char * img_bytes, int img_width, int img_height, bool_t img_is_belly, int pass_button,
	navdata_unpacked_t * navdata, commands_t * commands)
{    
	int k = 0;

	PyObject *pImageBytes = PyByteArray_FromStringAndSize((const char *)img_bytes, img_width*img_height*3);
	
	set_arg(pImageBytes,                         k++);
	set_int_arg(img_width, 	                     k++);
	set_int_arg(img_height,	                     k++);
	
	set_int_arg(img_is_belly?1:0, 	             k++);
	set_int_arg(pass_button,				     k++);

    navdata_demo_t demo = navdata->navdata_demo;
	
	set_int_arg(demo.ctrl_state, 	         k++);
	set_int_arg(demo.vbat_flying_percentage, k++);
	set_float_arg(demo.theta,                k++);
	set_float_arg(demo.phi,                  k++);
	set_float_arg(demo.psi,                  k++);

	set_int_arg(navdata->navdata_altitude.altitude_raw, k++);

    navdata_vision_raw_t vision_raw = navdata->navdata_vision_raw;

	set_float_arg(vision_raw.vision_tx_raw, k++);
	set_float_arg(vision_raw.vision_ty_raw, k++);
	
	PyObject * pResult = PyObject_CallObject(pFunc, pArgs);
	
	if (!pResult)
{
		fun_error("Call failed\n", "");
	}
	
	k = 0;
	commands->zap     = get_int_result(pResult,   k++);
	commands->phi     = get_float_result(pResult, k++);
	commands->theta   = get_float_result(pResult, k++);
	commands->gaz     = get_float_result(pResult, k++);
	commands->yaw     = get_float_result(pResult, k++);
}
static HANDLE_FUNC (handle_timeout)
{
        return set_int_arg (&conf->idletimeout, line, &match[2]);
}