File: rotor_pictrack.c

package info (click to toggle)
predict 2.2.3-3.1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 4,716 kB
  • sloc: ansic: 19,433; sh: 3,342; makefile: 428; yacc: 318; perl: 82
file content (59 lines) | stat: -rw-r--r-- 1,093 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*
 * PicTrack rotor plugin for gsat
 *
 * (c)2001 by Xavier Crehueras, EB3CZS
 */

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

char * plugin_info( void );
int plugin_open_rotor( char * config );
void plugin_close_rotor( void );
void plugin_set_rotor( double azimuth, double elevation );

int antfd;

char * plugin_info( void )
{
  return "PicTrack V1.0";
}

int plugin_open_rotor( char * config )
{
  antfd=open(config, O_RDWR | O_NOCTTY | O_NDELAY);

  if (antfd!=-1)
    fcntl(antfd, F_SETFL, 0);
  else {
    fprintf(stderr,"Unable To Open Antenna Port\n");
    return 0;
  }

  return 1;
}

void plugin_close_rotor( void )
{
  close(antfd);
}

void plugin_set_rotor( double azimuth, double elevation )
{
  /* This function sends Azimuth and Elevation data
     to an antenna tracker connected to the serial port */

  int n;
  char message[30]="\n";

  sprintf(message, "AZ%3.1f EL%3.1f \x0D\x0A", azimuth,elevation);
  n=write(antfd,message,30);

  if (n<0)
    fprintf(stderr, "Error Writing To Antenna Port\n");

  return;
}