~eisenbart56727/s-monitor/trunk

« back to all changes in this revision

Viewing changes to umon.c

  • Committer: Christoph Mayer
  • Date: 2017-08-22 18:57:44 UTC
  • mfrom: (1.1.4 devel)
  • Revision ID: feanors_fluch@web.de-20170822185744-7xbsgmtr31vx9ym6
tested

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//U-Monitor
2
 
//umon.c
3
 
 
4
 
#include <stdio.h>
5
 
#include <stdlib.h>
6
 
#include <string.h>
7
 
#include <errno.h>
8
 
#include "meinzeug.h"
9
 
#include "rs232.h"
10
 
 
11
 
typedef struct{
12
 
  char port;
13
 
  short int port_nr;
14
 
  int baudrate;
15
 
  char databits;
16
 
  char parity;
17
 
  char stopbits;
18
 
  int delay;
19
 
}configuration;
20
 
  
21
 
int monitor();
22
 
int config();
23
 
void help();
24
 
void about();
25
 
 
26
 
int main(int argc,char *argv[]){
27
 
  char option=0;
28
 
  int returnValue=0;
29
 
  if(argc==1) returnValue=monitor();
30
 
  else{
31
 
    if(strcmp(argv[1],"-c")==0) option='c';
32
 
    if(strcmp(argv[1],"-h")==0) option='h';
33
 
    if(strcmp(argv[1],"-i")==0) option='i';
34
 
    switch(option){
35
 
      case 'c': returnValue=config();break;
36
 
      case 'h': help();break;
37
 
      case 'i': about();break;
38
 
    }
39
 
  }
40
 
  return(returnValue);
41
 
}
42
 
 
43
 
int monitor(){
44
 
  char mode[4],buffer[81];
45
 
  int openPort,bytesRead;
46
 
  configuration current;
47
 
  FILE *FPconfigFile;
48
 
  FPconfigFile=fopen("umon.conf","r");
49
 
  if(FPconfigFile==NULL){
50
 
    fprintf(stderr,"\nCould not open configuration File.\n");
51
 
    fprintf(stderr,"ERROR %i: %s\n\n",errno,strerror(errno));
52
 
    return(3);
53
 
  }
54
 
  fscanf(FPconfigFile,"[PORT] %c\n",&current.port);
55
 
  if(current.port!='s' && current.port!='u'){
56
 
    fprintf(stderr,"\nInvalid port type in configuration File.\n\n");
57
 
    return(4);
58
 
  }
59
 
  fscanf(FPconfigFile,"[PORT_NR] %hi\n",&current.port_nr);
60
 
  fscanf(FPconfigFile,"[BAUDRATE] %i\n",&current.baudrate);
61
 
  fscanf(FPconfigFile,"[DATABITS] %c\n",&current.databits);
62
 
  fscanf(FPconfigFile,"[PARITY] %c\n",&current.parity);
63
 
  fscanf(FPconfigFile,"[STOPBITS] %c\n",&current.stopbits);
64
 
  fscanf(FPconfigFile,"[DELAY] %i\n",&current.delay);
65
 
  fclose(FPconfigFile);
66
 
  if(current.port=='s') openPort=current.port_nr;
67
 
  else openPort=16+current.port_nr;
68
 
  mode[0]=current.databits;
69
 
  mode[1]=current.parity;
70
 
  mode[2]=current.stopbits;
71
 
  mode[3]=0;
72
 
  if(RS232_OpenComport(openPort,current.baudrate,mode)){
73
 
    fprintf(stderr,"\nSerial port could not be opened.\n\n");
74
 
    return(5);
75
 
  }
76
 
  while(1){
77
 
    usleep(current.delay*1000);
78
 
    bytesRead=RS232_PollComport(openPort,(unsigned char *)buffer,80);
79
 
    if(bytesRead==0) puts("no data...");
80
 
    else{
81
 
      buffer[bytesRead]=0;
82
 
      puts(buffer);
83
 
    }
84
 
  }
85
 
  RS232_CloseComport(openPort);
86
 
  return(0);
87
 
}
88
 
 
89
 
int config(){
90
 
  configuration new;
91
 
  FILE *FPconfigFile;
92
 
  FPconfigFile=fopen("umon.conf","w");
93
 
  if(FPconfigFile==NULL){
94
 
    fprintf(stderr,"\nCould not create configuration file.\n");
95
 
    fprintf(stderr,"ERROR %i: %s\n\n",errno,strerror(errno));
96
 
    return(1);
97
 
  }
98
 
  printf("Serial or USB port (s/u): ");
99
 
  scanf("%c",&new.port);
100
 
  fprintf(FPconfigFile,"[PORT] %c\n",new.port);
101
 
  printf("Portnumber: ");
102
 
  _flu;scanf("%hi",&new.port_nr);
103
 
  fprintf(FPconfigFile,"[PORT_NR] %i\n",new.port_nr);
104
 
  printf("Baudrate: ");
105
 
  _flu;scanf("%i",&new.baudrate);
106
 
  fprintf(FPconfigFile,"[BAUDRATE] %i\n",new.baudrate);
107
 
  printf("Databits: ");
108
 
  _flu;scanf("%c",&new.databits);
109
 
  fprintf(FPconfigFile,"[DATABITS] %c\n",new.databits);
110
 
  printf("Parity (N/O/E): ");
111
 
  _flu;scanf("%c",&new.parity);
112
 
  fprintf(FPconfigFile,"[PARITY] %c\n",new.parity);
113
 
  printf("Stopbits: ");
114
 
  _flu;scanf("%c",&new.stopbits);
115
 
  fprintf(FPconfigFile,"[STOPBITS] %c\n",new.stopbits);
116
 
  printf("Delay [ms]: ");
117
 
  scanf("%i",&new.delay);
118
 
  fprintf(FPconfigFile,"[DELAY] %i\n",new.delay);
119
 
  if(fclose(FPconfigFile)==EOF){
120
 
    fprintf(stderr,"\nCould not save configuration file.\n");
121
 
    fprintf(stderr,"ERROR %i: %s\n\n",errno,strerror(errno));
122
 
    return(2);
123
 
  }
124
 
  printf("\nConfiguration file saved successfully.\n\n");
125
 
  return(0);
126
 
}
127
 
 
128
 
void help(){
129
 
 
130
 
}
131
 
 
132
 
void about(){
133
 
 
134
 
}