#include <time.h>
#include <sys/time.h>
#include <ncurses.h>
#include <panel.h>

#include "aprstlm.h"

void pcsat_static()
{

   extern WINDOW *tlm_win;
   extern WINDOW *raw_win;
   extern WINDOW *tlmb_win;
   extern WINDOW *rawb_win;
   extern WINDOW *cmd_win;
   extern WINDOW *arm_win;
   extern WINDOW *timer_win;

   extern WINDOW *tlmdateutc_win;
   extern WINDOW *tlmdatelcl_win;
   extern WINDOW *tlmdatemet_win;
   extern WINDOW *tlmdateelp_win;

   extern WINDOW *tlmdateutcb_win;
   extern WINDOW *tlmdatelclb_win;
   extern WINDOW *tlmdatemetb_win;
   extern WINDOW *tlmdateelpb_win;

   extern char *tzname[2];

   extern int framestatic[4];
   extern int framestaticb[4];

   extern int numcmdstr;
   extern int allframestatic;
   extern int allframestaticb;

   int z,x;

   /* Set Static Status Of A-xx Frames */

   for (z=0; z<=3; z++)
   {
      if (framestatic[z]==1)
      {
         switch(z)
         {
            case 0:
               mvwchgat(raw_win,3,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,2,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,4,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,3,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,2,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutc_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelcl_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemet_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelp_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
            case 1:
               mvwchgat(raw_win,4,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,3,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,5,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,5,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,4,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutc_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelcl_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemet_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelp_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
	       break;
            case 2:
               mvwchgat(raw_win,5,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,2,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,2,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,3,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,5,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutc_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelcl_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemet_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelp_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
            case 3:
               mvwchgat(raw_win,6,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,2,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,3,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,5,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,5,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,6,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutc_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelcl_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemet_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelp_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
         }
      }
      else
      {
         switch(z)
         {
            case 0:
               mvwchgat(raw_win,3,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,2,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,4,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,3,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,2,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutc_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelcl_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemet_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelp_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
            case 1:
               mvwchgat(raw_win,4,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,3,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,5,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,5,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,4,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutc_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelcl_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemet_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelp_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
	       break;
            case 2:
               mvwchgat(raw_win,5,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,2,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,2,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,3,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,6,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutc_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelcl_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemet_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelp_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
            case 3:
               mvwchgat(raw_win,6,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,2,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,3,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,5,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,5,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,6,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutc_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelcl_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemet_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelp_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
         }
      }
      if (framestaticb[z]==1)
      {
         switch(z)
         {
            case 0:
               mvwchgat(rawb_win,3,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,2,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,4,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,3,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,2,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutcb_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelclb_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemetb_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelpb_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
            case 1:
               mvwchgat(rawb_win,4,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,3,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,6,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,6,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,4,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutcb_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelclb_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemetb_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelpb_win,3,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
            case 2:
               mvwchgat(rawb_win,5,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,2,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,3,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,3,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,6,51,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutcb_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelclb_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemetb_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelpb_win,4,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
            case 3:
               mvwchgat(rawb_win,6,68,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,4,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,5,25,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlm_win,6,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,6,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmb_win,2,78,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateutcb_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatelclb_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdatemetb_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               mvwchgat(tlmdateelpb_win,5,38,1,A_NORMAL,COLOUR_STATIC,NULL);
               break;
         }
      }
      else
      {
         switch(z)
         {
            case 0:
               mvwchgat(rawb_win,3,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,2,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,4,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,3,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,2,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutcb_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelclb_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemetb_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelpb_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
            case 1:
               mvwchgat(rawb_win,4,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,4,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,6,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,6,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,4,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutcb_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelclb_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemetb_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelpb_win,3,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
            case 2:
               mvwchgat(rawb_win,5,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,2,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,3,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,3,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmb_win,6,51,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutcb_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelclb_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemetb_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelpb_win,4,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
            case 3:
               mvwchgat(rawb_win,6,68,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,4,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,5,25,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,6,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlm_win,2,78,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateutcb_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatelclb_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdatemetb_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               mvwchgat(tlmdateelpb_win,5,38,1,A_NORMAL,COLOUR_INVIS,NULL);
               break;
         }
      }
   }

   /* Handle CMD Bits Window */

   if ((allframestatic==1) && (allframestaticb==1))
   {
      for (x=0; x<=(numcmdstr/2); x++)
      {
         mvwchgat(cmd_win,2+x,19,1,A_NORMAL,COLOUR_STATIC,NULL);
         mvwchgat(cmd_win,2+x,38,1,A_NORMAL,COLOUR_STATIC,NULL);
      }
      mvwchgat(arm_win,2,16,1,A_NORMAL,COLOUR_STATIC,NULL);
      mvwchgat(arm_win,2,28,1,A_NORMAL,COLOUR_STATIC,NULL);
      mvwchgat(arm_win,2,38,1,A_NORMAL,COLOUR_STATIC,NULL);
   }
   else
   {
      for (x=0; x<=(numcmdstr/2); x++)
      {
         mvwchgat(cmd_win,2+x,19,1,A_NORMAL,COLOUR_INVIS,NULL);
         mvwchgat(cmd_win,2+x,38,1,A_NORMAL,COLOUR_INVIS,NULL);
      }
      mvwchgat(arm_win,2,16,1,A_NORMAL,COLOUR_INVIS,NULL);
      mvwchgat(arm_win,2,28,1,A_NORMAL,COLOUR_INVIS,NULL);
      mvwchgat(arm_win,2,38,1,A_NORMAL,COLOUR_INVIS,NULL);
   }
}
