Detect perm errors in sig colors

This commit is contained in:
Gareth Evans
2017-02-22 19:29:14 +00:00
parent 0b495ad094
commit 96257f9b16
5 changed files with 17 additions and 13 deletions

View File

@@ -1008,9 +1008,10 @@ int LoadPAT(char *filename)
LR.antenna_pattern[x][y] = az * elevation; LR.antenna_pattern[x][y] = az * elevation;
} }
} }
return 0;
} }
void LoadSignalColors(struct site xmtr) int LoadSignalColors(struct site xmtr)
{ {
int x, y, ok, val[4]; int x, y, ok, val[4];
char filename[255], string[80], *pointer = NULL, *s = NULL; char filename[255], string[80], *pointer = NULL, *s = NULL;
@@ -1095,14 +1096,13 @@ void LoadSignalColors(struct site xmtr)
region.levels = 13; region.levels = 13;
fd = fopen(filename, "r"); /* Don't save if we don't have an output file */
if ( xmtr.filename[0] == '\0' && (fd = fopen(filename, "r")) == NULL )
if (fd == NULL && xmtr.filename[0] == '\0') return 0;
/* Don't save if we don't have an output file */
return;
if (fd == NULL) { if (fd == NULL) {
fd = fopen(filename, "w"); if( (fd = fopen(filename, "w")) == NULL )
return errno;
for (x = 0; x < region.levels; x++) for (x = 0; x < region.levels; x++)
fprintf(fd, "%3d: %3d, %3d, %3d\n", region.level[x], fprintf(fd, "%3d: %3d, %3d, %3d\n", region.level[x],
@@ -1147,6 +1147,7 @@ void LoadSignalColors(struct site xmtr)
fclose(fd); fclose(fd);
region.levels = x; region.levels = x;
} }
return 0;
} }
void LoadLossColors(struct site xmtr) void LoadLossColors(struct site xmtr)

View File

@@ -6,7 +6,7 @@
int LoadSDF_SDF(char *name, int winfiles); int LoadSDF_SDF(char *name, int winfiles);
char LoadSDF(char *name, int winfiles); char LoadSDF(char *name, int winfiles);
int LoadPAT(char *filename); int LoadPAT(char *filename);
void LoadSignalColors(struct site xmtr); int LoadSignalColors(struct site xmtr);
void LoadLossColors(struct site xmtr); void LoadLossColors(struct site xmtr);
void LoadDBMColors(struct site xmtr); void LoadDBMColors(struct site xmtr);
void LoadTopoData(int max_lon, int min_lon, int max_lat, int min_lat); void LoadTopoData(int max_lon, int min_lon, int max_lat, int min_lat);

View File

@@ -1846,8 +1846,8 @@ int main(int argc, char *argv[])
DoRxdPwr((to_stdout == true ? NULL : mapfile), geo, kml, ngs, tx_site, DoRxdPwr((to_stdout == true ? NULL : mapfile), geo, kml, ngs, tx_site,
txsites); txsites);
else else
DoSigStr(mapfile, geo, kml, ngs, tx_site, if( (result = DoSigStr(mapfile, geo, kml, ngs, tx_site,txsites)) != 0 )
txsites); return result;
} }
if(lidar){ if(lidar){
east=eastoffset; east=eastoffset;

View File

@@ -256,7 +256,7 @@ void DoPathLoss(char *filename, unsigned char geo, unsigned char kml,
} }
void DoSigStr(char *filename, unsigned char geo, unsigned char kml, int DoSigStr(char *filename, unsigned char geo, unsigned char kml,
unsigned char ngs, struct site *xmtr, unsigned char txsites) unsigned char ngs, struct site *xmtr, unsigned char txsites)
{ {
/* This function generates a topographic map in Portable Pix Map /* This function generates a topographic map in Portable Pix Map
@@ -284,7 +284,10 @@ void DoSigStr(char *filename, unsigned char geo, unsigned char kml,
255.0 / pow((double)(max_elevation - min_elevation), 255.0 / pow((double)(max_elevation - min_elevation),
one_over_gamma); one_over_gamma);
LoadSignalColors(xmtr[0]); if( (success = LoadSignalColors(xmtr[0])) != 0 ){
fprintf(stderr,"Error loading signal colors\n");
return success;
}
if( filename != NULL ) { if( filename != NULL ) {

View File

@@ -3,7 +3,7 @@
void DoPathLoss(char *filename, unsigned char geo, unsigned char kml, void DoPathLoss(char *filename, unsigned char geo, unsigned char kml,
unsigned char ngs, struct site *xmtr, unsigned char txsites); unsigned char ngs, struct site *xmtr, unsigned char txsites);
void DoSigStr(char *filename, unsigned char geo, unsigned char kml, int DoSigStr(char *filename, unsigned char geo, unsigned char kml,
unsigned char ngs, struct site *xmtr, unsigned char txsites); unsigned char ngs, struct site *xmtr, unsigned char txsites);
void DoRxdPwr(char *filename, unsigned char geo, unsigned char kml, void DoRxdPwr(char *filename, unsigned char geo, unsigned char kml,
unsigned char ngs, struct site *xmtr, unsigned char txsites); unsigned char ngs, struct site *xmtr, unsigned char txsites);