Add scat. Temporary fix to rc r.e. note groups.
This commit is contained in:
parent
3f8c70e97c
commit
8a3b2ceb0f
22 changed files with 5997 additions and 2 deletions
247
src/cmd/scat/header.c
Normal file
247
src/cmd/scat/header.c
Normal file
|
|
@ -0,0 +1,247 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
#include "sky.h"
|
||||
|
||||
struct
|
||||
{
|
||||
char name[9];
|
||||
char offset;
|
||||
} Hproto[] =
|
||||
{
|
||||
"ppo1", Pppo1,
|
||||
"ppo2", Pppo2,
|
||||
"ppo3", Pppo3,
|
||||
"ppo4", Pppo4,
|
||||
"ppo5", Pppo5,
|
||||
"ppo6", Pppo6,
|
||||
|
||||
"amdx1", Pamdx1,
|
||||
"amdx2", Pamdx2,
|
||||
"amdx3", Pamdx3,
|
||||
"amdx4", Pamdx4,
|
||||
"amdx5", Pamdx5,
|
||||
"amdx6", Pamdx6,
|
||||
"amdx7", Pamdx7,
|
||||
"amdx8", Pamdx8,
|
||||
"amdx9", Pamdx9,
|
||||
"amdx10", Pamdx10,
|
||||
"amdx11", Pamdx11,
|
||||
"amdx12", Pamdx12,
|
||||
"amdx13", Pamdx13,
|
||||
"amdx14", Pamdx14,
|
||||
"amdx15", Pamdx15,
|
||||
"amdx16", Pamdx16,
|
||||
"amdx17", Pamdx17,
|
||||
"amdx18", Pamdx18,
|
||||
"amdx19", Pamdx19,
|
||||
"amdx20", Pamdx20,
|
||||
|
||||
"amdy1", Pamdy1,
|
||||
"amdy2", Pamdy2,
|
||||
"amdy3", Pamdy3,
|
||||
"amdy4", Pamdy4,
|
||||
"amdy5", Pamdy5,
|
||||
"amdy6", Pamdy6,
|
||||
"amdy7", Pamdy7,
|
||||
"amdy8", Pamdy8,
|
||||
"amdy9", Pamdy9,
|
||||
"amdy10", Pamdy10,
|
||||
"amdy11", Pamdy11,
|
||||
"amdy12", Pamdy12,
|
||||
"amdy13", Pamdy13,
|
||||
"amdy14", Pamdy14,
|
||||
"amdy15", Pamdy15,
|
||||
"amdy16", Pamdy16,
|
||||
"amdy17", Pamdy17,
|
||||
"amdy18", Pamdy18,
|
||||
"amdy19", Pamdy19,
|
||||
"amdy20", Pamdy20,
|
||||
|
||||
"pltscale", Ppltscale,
|
||||
"xpixelsz", Pxpixelsz,
|
||||
"ypixelsz", Pypixelsz,
|
||||
|
||||
"pltrah", Ppltrah,
|
||||
"pltram", Ppltram,
|
||||
"pltras", Ppltras,
|
||||
"pltdecd", Ppltdecd,
|
||||
"pltdecm", Ppltdecm,
|
||||
"pltdecs", Ppltdecs,
|
||||
|
||||
};
|
||||
|
||||
Header*
|
||||
getheader(char *rgn)
|
||||
{
|
||||
char rec[81], name[81], value[81];
|
||||
char *p;
|
||||
Biobuf *bin;
|
||||
Header hd, *h;
|
||||
int i, j, decsn, dss;
|
||||
|
||||
dss = 0;
|
||||
sprint(rec, "/lib/sky/dssheaders/%s.hhh", rgn);
|
||||
bin = Bopen(unsharp(rec), OREAD);
|
||||
/*
|
||||
if(bin == 0) {
|
||||
dss = 102;
|
||||
sprint(rec, "/n/juke/dss/dss.102/headers/%s.hhh", rgn);
|
||||
bin = Bopen(rec, OREAD);
|
||||
}
|
||||
if(bin == 0) {
|
||||
dss = 61;
|
||||
sprint(rec, "/n/juke/dss/dss.061/headers/%s.hhh", rgn);
|
||||
bin = Bopen(rec, OREAD);
|
||||
}
|
||||
*/
|
||||
if(bin == 0) {
|
||||
fprint(2, "cannot open %s\n", rgn);
|
||||
exits("file");
|
||||
}
|
||||
if(debug)
|
||||
Bprint(&bout, "reading %s\n", rec);
|
||||
if(dss)
|
||||
Bprint(&bout, "warning: reading %s from jukebox\n", rec);
|
||||
|
||||
memset(&hd, 0, sizeof(hd));
|
||||
j = 0;
|
||||
decsn = 0;
|
||||
for(;;) {
|
||||
if(dss) {
|
||||
if(Bread(bin, rec, 80) != 80)
|
||||
break;
|
||||
rec[80] = 0;
|
||||
} else {
|
||||
p = Brdline(bin, '\n');
|
||||
if(p == 0)
|
||||
break;
|
||||
p[Blinelen(bin)-1] = 0;
|
||||
strcpy(rec, p);
|
||||
}
|
||||
|
||||
p = strchr(rec, '/');
|
||||
if(p)
|
||||
*p = 0;
|
||||
p = strchr(rec, '=');
|
||||
if(p == 0)
|
||||
continue;
|
||||
*p++ = 0;
|
||||
if(getword(name, rec) == 0)
|
||||
continue;
|
||||
if(getword(value, p) == 0)
|
||||
continue;
|
||||
if(strcmp(name, "pltdecsn") == 0) {
|
||||
if(strchr(value, '-'))
|
||||
decsn = 1;
|
||||
continue;
|
||||
}
|
||||
for(i=0; i<nelem(Hproto); i++) {
|
||||
j++;
|
||||
if(j >= nelem(Hproto))
|
||||
j = 0;
|
||||
if(strcmp(name, Hproto[j].name) == 0) {
|
||||
hd.param[(uchar)Hproto[j].offset] = atof(value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
Bterm(bin);
|
||||
|
||||
hd.param[Ppltra] = RAD(hd.param[Ppltrah]*15 +
|
||||
hd.param[Ppltram]/4 + hd.param[Ppltras]/240);
|
||||
hd.param[Ppltdec] = RAD(hd.param[Ppltdecd] +
|
||||
hd.param[Ppltdecm]/60 + hd.param[Ppltdecs]/3600);
|
||||
if(decsn)
|
||||
hd.param[Ppltdec] = -hd.param[Ppltdec];
|
||||
hd.amdflag = 0;
|
||||
for(i=Pamdx1; i<=Pamdx20; i++)
|
||||
if(hd.param[i] != 0) {
|
||||
hd.amdflag = 1;
|
||||
break;
|
||||
}
|
||||
h = malloc(sizeof(*h));
|
||||
*h = hd;
|
||||
return h;
|
||||
}
|
||||
|
||||
void
|
||||
getplates(void)
|
||||
{
|
||||
char rec[81], *q;
|
||||
Plate *p;
|
||||
Biobuf *bin;
|
||||
int c, i, dss;
|
||||
|
||||
dss = 0;
|
||||
sprint(rec, "/lib/sky/dssheaders/lo_comp.lis");
|
||||
bin = Bopen(rec, OREAD);
|
||||
if(bin == 0) {
|
||||
dss = 102;
|
||||
sprint(rec, "%s/headers/lo_comp.lis", dssmount(dss));
|
||||
bin = Bopen(rec, OREAD);
|
||||
}
|
||||
if(bin == 0) {
|
||||
dss = 61;
|
||||
sprint(rec, "%s/headers/lo_comp.lis", dssmount(dss));
|
||||
bin = Bopen(rec, OREAD);
|
||||
}
|
||||
if(bin == 0) {
|
||||
fprint(2, "can't open lo_comp.lis; try 9fs juke\n");
|
||||
exits("open");
|
||||
}
|
||||
if(debug)
|
||||
Bprint(&bout, "reading %s\n", rec);
|
||||
if(dss)
|
||||
Bprint(&bout, "warning: reading %s from jukebox\n", rec);
|
||||
for(nplate=0;;) {
|
||||
if(dss) {
|
||||
if(Bread(bin, rec, 80) != 80)
|
||||
break;
|
||||
rec[80] = 0;
|
||||
} else {
|
||||
q = Brdline(bin, '\n');
|
||||
if(q == 0)
|
||||
break;
|
||||
q[Blinelen(bin)-1] = 0;
|
||||
strcpy(rec, q);
|
||||
}
|
||||
if(rec[0] == '#')
|
||||
continue;
|
||||
if(nplate < nelem(plate)) {
|
||||
p = &plate[nplate];
|
||||
memmove(p->rgn, rec+0, 5);
|
||||
if(p->rgn[4] == ' ')
|
||||
p->rgn[4] = 0;
|
||||
for(i=0; c=p->rgn[i]; i++)
|
||||
if(c >= 'A' && c <= 'Z')
|
||||
p->rgn[i] += 'a'-'A';
|
||||
p->ra = RAD(atof(rec+12)*15 +
|
||||
atof(rec+15)/4 +
|
||||
atof(rec+18)/240);
|
||||
p->dec = RAD(atof(rec+26) +
|
||||
atof(rec+29)/60 +
|
||||
atof(rec+32)/3600);
|
||||
if(rec[25] == '-')
|
||||
p->dec = -p->dec;
|
||||
p->disk = atoi(rec+53);
|
||||
if(p->disk == 0)
|
||||
continue;
|
||||
}
|
||||
nplate++;
|
||||
}
|
||||
Bterm(bin);
|
||||
|
||||
if(nplate >= nelem(plate))
|
||||
fprint(2, "nplate too small %d %d\n", nelem(plate), nplate);
|
||||
if(debug)
|
||||
Bprint(&bout, "%d plates\n", nplate);
|
||||
}
|
||||
|
||||
char*
|
||||
dssmount(int dskno)
|
||||
{
|
||||
Bprint(&bout, "not mounting dss\n");
|
||||
return "/n/dss";
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue