#include <ansi_c.h>
 
#include <utility.h>
 
#include "hm7044ui.h" 
 
#include "hm7044.h"
 
 
 
static int panelHandle;
 
 
 
int test(){  
 
  char result[MAX_CMD] ;
 
  char cmd[MAX_CMD] ;
 
  float data[4];
 
  int port;
 
  int err;
 
  int i,ch=1;
 
  GetCtrlVal(panelHandle,PANEL_PORT,&port); 
 
  GetCtrlVal(panelHandle,PANEL_CMD ,cmd); 
 
  
 
  err=HM7044_Open (port);
 
  HM7044_SendCmd("FUSE 1,2,3,4",result);
 
   HM7044_FuseOff( ch); 
 
   HM7044_SetVoltage(ch,1);
 
   HM7044_Enable_Output( ch);
 
   for (i=0;i<10;i++){
 
         HM7044_SwitchOff(ch);                                                  
 
         HM7044_SetCurrent(ch,i/1000.);
 
         //HM7044_SetVoltage(ch,i/100.);
 
              
 
     HM7044_SwitchOn(ch);
 
     
 
     Delay(0.5);
 
     HM7044_Read(data); 
 
   
 
   }
 
 
 
  HM7044_Disable_Output(ch);
 
  err= HM7044_Close() ;
 
  printf ( "[%d] Port closed.\n" ,err
) ;  
  return 0;
 
}
 
 
 
int mymain(){
 
 
 
  char result[MAX_CMD] ;
 
  char cmd[MAX_CMD] ;
 
  float data[4];
 
  int port;
 
  int err;
 
  GetCtrlVal(panelHandle,PANEL_PORT,&port); 
 
  GetCtrlVal(panelHandle,PANEL_CMD ,cmd); 
 
  
 
  err=HM7044_Open (port);
 
  printf ( "[%d] Port  %d opened \n",err
,port
) ;  
 
 
 
 
  HM7044_SendCmd (cmd, result );
 
  printf ( "\nRecieved response:#%s#\n",result 
) ;  
  SetCtrlVal(panelHandle,PANEL_READ ,result);
 
  SetCtrlVal(panelHandle,PANEL_READ ,"\n"); 
 
  err= HM7044_Close() ;
 
  printf ( "[%d] Port closed.\n" ,err
) ;  
  return 0;
 
}
 
 
 
 
 
 
 
int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
 
                       LPSTR lpszCmdLine, int nCmdShow)
 
{
 
        if (InitCVIRTE (hInstance, 0, 0) == 0)
 
                return -1;      /* out of memory */
 
        if ((panelHandle = LoadPanel (0, "hm7044ui.uir", PANEL)) < 0)
 
                return -1;
 
        DisplayPanel (panelHandle);
 
        
 
        SetStdioPort (CVI_STDIO_WINDOW);
 
        RunUserInterface ();
 
        
 
 
 
        DiscardPanel (panelHandle);
 
        return 0;
 
}
 
 
 
int CVICALLBACK Send (int panel, int control, int event,
 
                void *callbackData, int eventData1, int eventData2)
 
{
 
        switch (event)
 
                {
 
                case EVENT_COMMIT:
 
                        mymain();
 
                        break;
 
                }
 
        return 0;
 
}
 
int CVICALLBACK TestCB (int panel, int control, int event,
 
                void *callbackData, int eventData1, int eventData2)
 
{
 
        switch (event)
 
                {
 
                case EVENT_COMMIT:
 
                        test();
 
                        break;
 
                }
 
        return 0;
 
}
 
int CVICALLBACK Exit (int panel, int control, int event,
 
                void *callbackData, int eventData1, int eventData2)
 
{
 
        switch (event)
 
                {
 
                case EVENT_COMMIT:
 
                        QuitUserInterface (0);
 
                        break;
 
                }
 
        return 0;
 
}