#include <stdio.h>
#include <math.h>
#include <time.h>
struct tm tm;
char v1[61],v2[61];
char exp1[81],exp2[81],a[999];
time_t *tt;
int logsize1,logsize2;
int is;
FILE *fp;

main(ac,av)
int ac; char *av[];
{
  int i,j,k;	
  is=10;
  if(ac>1)sscanf(av[1],"%d",&is);
  if(is<4)is=4;  if(is>60)is=60;
  printf("\n\n\t*** look SMT ****\t  Ctrl+c fot exit\n");
  printf("\n\n  Usge: look [10]\n");
// 1. tail *.log
  printf("\n******* tail of obs.log ********\n");
  system("tail /u/ccdev/smtlib/obs.log");
  fp=fopen("/u/ccdev/smtlib/obs.log","rb");
  fseek(fp,0,2); logsize1=ftell(fp); fclose(fp);
// 2. v1
  printf("\n******* link of PC *******\n");
  getvar2("smt","v1",v1); v1[60]=0;
  printf("%s\n",v1);
// 3. exp.dat
  printf("\n******* exp.dat *******\n");
  fp=fopen("/u/ccdev/jiang/exp.dat","rb");
  k=fread(exp1,1,80,fp);  exp1[k]=0; fclose(fp);
  printf("%s\n",exp1);  


l10:
  sleep(is);  
  tt=time(0); printf("%s",asctime(localtime(&tt)));
// check obs.log  
  fp=fopen("/u/ccdev/smtlib/obs.log","rb");
  fseek(fp,0,2); logsize2=ftell(fp);
  if(logsize1!=logsize2){
    fseek(fp,logsize1,0);
    k=fread(a,1,999,fp);
    a[k]=0;
    printf("%s",a);
  }	  
  logsize1=logsize2; fclose(fp);	  
// check v1  
  getvar2("smt","v1",v2); v2[60]=0;
  k=0; for(i=0;i<=10;i++)if(v1[i]!=v2[i])k=1;
  if(k==1){ printf("%s\n",v2); xmass(v2); }
  strcpy(v1,v2);
// check exp.dat
  fp=fopen("/u/ccdev/jiang/exp.dat","rb");
  k=fread(exp2,1,80,fp); exp2[k]=0; fclose(fp);
  k=0; for(i=0;i<38;i++)if(exp1[i]!=exp2[i])k=1;
  if(k==1)printf("%s",exp2);
  strcpy(exp1,exp2);  
  goto l10;
}

xmass(v)
char v[];
{
  char a[31],c;
  int i1,i2,i3,j1,j2,j3;
  double pi,phi,sphi,cphi;
  double dec,ha,x,z;
  pi=4.*atan(1.); 
  phi=(40.+23/60.+36/3600.)*pi/180.;
  sphi=sin(phi); cphi=cos(phi);
  
  strcpy(a,&v[30]); c=a[0];
  a[0]=a[3]=a[6]=a[9]=a[12]=a[15]=a[18]=32;
  sscanf(a,"%d %d %d %d %d %d",&i1,&i2,&i3,&j1,&j2,&j3);
  dec=i1+i2/60.+i3/3600.; if(c=='-')dec=-dec;
  ha=j1+j2/60.+j3/3600.;
  dec*=(pi/180.); ha*=(pi/12.);
  
  x=sin(dec)*sphi+cos(dec)*cos(ha)*cphi;
  z=sqrt(1.-x*x);
  z=90.-atan2(x,z)*180./pi;
  x=1./x-1.;
  x=1.+x-x*(0.0018167+x*(0.002875+x*0.0008083));
  printf("\t\t\t\t\t\tZen:%5.1f  airmass:%5.1f\n",z,x);
}

getvar2(s1,s2,ss)
char *s1,*s2,*ss;
{
  char bin[80];
  int k;
  FILE *fp;
  strcpy(bin,"/u/ccdev/jiang/vdbshow ");
  strcat(bin,s1);   strcat(bin," ");   strcat(bin,s2);
  fp=popen(bin,"r"); k=fread(bin,1,80,fp); pclose(fp);
  bin[k]=0;   strcpy(ss,bin);
}

