#include <stdio.h>
#include <stdint.h>
#include <getopt.h>
#include <errno.h>
#include <unistd.h>
#include <SDL/SDL.h>
#include <helicontrol.h>

Go to the source code of this file.
| Defines | |
| #define | bound(min, num, max) ((num) >= (min) ? ((num) < (max) ? (num) : (max)) : (min)) | 
| #define | JOYSTICK 0 | 
| #define | JOYSTICK_THROTTLE_MAX -32768 | 
| #define | JOYSTICK_YAW_MAX -32768 | 
| #define | JOYSTICK_PITCH_MAX -32768 | 
| #define | JOYSTICK_ROLL_MAX 32768 | 
| #define | JOYSTICK_AXIS_SAUCER_ROLL 2 | 
| #define | JOYSTICK_AXIS_SAUCER_YAW 0 | 
| #define | JOYSTICK_AXIS_THROTTLE 1 | 
| #define | JOYSTICK_AXIS_YAW 2 | 
| #define | JOYSTICK_AXIS_PITCH 3 | 
| #define | JOYSTICK_BUTTON_TRIM_L 6 | 
| #define | JOYSTICK_BUTTON_TRIM_R 7 | 
| #define | JOYSTICK_BUTTON_FIRE1 4 | 
| #define | JOYSTICK_BUTTON_FIRE2 5 | 
| #define | JOYSTICK_BUTTON_PITCH1 4 | 
| #define | JOYSTICK_BUTTON_PITCH2 5 | 
| #define | INTERVAL 25000 | 
| #define | MODE_NORMAL 0 | 
| #define | MODE_JOYSTICK 1 | 
| #define | MODE_STOP 2 | 
| Functions | |
| static void | usage (void) | 
| static void | send_frame (char protocol, char channel, char throttle, char trim, char yaw, char pitch, char special) | 
| int | main (int argc, char **argv) | 
| Variables | |
| static struct option | long_options [] | 
| struct usb_dev_handle * | handle | 
It implements a simple remote control, similar to helictrl.cc in ../tools but with joystick support (SDL, not available on win32/vs2008).
Definition in file helidemo_sdl.c.
| #define bound | ( | min, | |||
| num, | |||||
| max | ) | ((num) >= (min) ? ((num) < (max) ? (num) : (max)) : (min)) | 
Definition at line 44 of file helidemo_sdl.c.
Referenced by send_frame().
| #define INTERVAL 25000 | 
| #define JOYSTICK 0 | 
| #define JOYSTICK_AXIS_PITCH 3 | 
| #define JOYSTICK_AXIS_SAUCER_ROLL 2 | 
| #define JOYSTICK_AXIS_SAUCER_YAW 0 | 
| #define JOYSTICK_AXIS_THROTTLE 1 | 
| #define JOYSTICK_AXIS_YAW 2 | 
| #define JOYSTICK_BUTTON_FIRE1 4 | 
| #define JOYSTICK_BUTTON_FIRE2 5 | 
| #define JOYSTICK_BUTTON_PITCH1 4 | 
| #define JOYSTICK_BUTTON_PITCH2 5 | 
| #define JOYSTICK_BUTTON_TRIM_L 6 | 
| #define JOYSTICK_BUTTON_TRIM_R 7 | 
| #define JOYSTICK_PITCH_MAX -32768 | 
| #define JOYSTICK_ROLL_MAX 32768 | 
| #define JOYSTICK_THROTTLE_MAX -32768 | 
| #define JOYSTICK_YAW_MAX -32768 | 
| #define MODE_JOYSTICK 1 | 
| #define MODE_NORMAL 0 | 
Definition at line 65 of file helidemo_sdl.c.
Referenced by main().
| #define MODE_STOP 2 | 
Definition at line 67 of file helidemo_sdl.c.
Referenced by main().
| int main | ( | int | argc, | |
| char ** | argv | |||
| ) | 
Definition at line 131 of file helidemo_sdl.c.
References handle, HC_Close(), HC_CMD_Repeat(), HC_CMD_Stop(), HC_Init(), INTERVAL, JOYSTICK, JOYSTICK_AXIS_PITCH, JOYSTICK_AXIS_SAUCER_ROLL, JOYSTICK_AXIS_SAUCER_YAW, JOYSTICK_AXIS_THROTTLE, JOYSTICK_AXIS_YAW, JOYSTICK_BUTTON_FIRE1, JOYSTICK_BUTTON_FIRE2, JOYSTICK_BUTTON_PITCH1, JOYSTICK_BUTTON_PITCH2, JOYSTICK_BUTTON_TRIM_L, JOYSTICK_BUTTON_TRIM_R, JOYSTICK_PITCH_MAX, JOYSTICK_ROLL_MAX, JOYSTICK_THROTTLE_MAX, JOYSTICK_YAW_MAX, long_options, MODE_JOYSTICK, MODE_NORMAL, MODE_STOP, send_frame(), and usage().

| static void send_frame | ( | char | protocol, | |
| char | channel, | |||
| char | throttle, | |||
| char | trim, | |||
| char | yaw, | |||
| char | pitch, | |||
| char | special | |||
| ) |  [static] | 
Definition at line 102 of file helidemo_sdl.c.
References bound, handle, HC_Send_Challenger(), HC_Send_Picooz(), HC_Send_Saucer(), HC_Send_Tandemz(), and HC_Send_Uranus().
Referenced by main().

| static void usage | ( | void | ) |  [static] | 
| struct usb_dev_handle* handle | 
Definition at line 100 of file helidemo_sdl.c.
Referenced by HC_Init(), main(), and send_frame().
| struct option long_options[]  [static] | 
Initial value:
{
    {"protocol",        required_argument,      0, 'p'},
    {"channel",         required_argument,      0, 'c'},
    {"throttle",        required_argument,      0, 't'},
    {"trim",            required_argument,      0, 'm'},
    {"yaw",                     required_argument,      0, 'y'},
    {"fire",            required_argument,      0, 'f'},
    {"pitch",           required_argument,      0, 'i'},
    {"roll",            required_argument,      0, 'r'},
    {"stop",            no_argument,            0, 's'},
    {"joystick",        no_argument,            0, 'j'},
    {"help",            no_argument,            0, 'h'},
    {0, 0, 0, 0}
}
Definition at line 69 of file helidemo_sdl.c.
Referenced by main().
 1.5.3
 1.5.3