int_32  Shell_scale(int_32 argc, char_ptr argv[] )
{
   boolean           print_usage, shorthelp = FALSE;
   int_32            return_code = SHELL_EXIT_SUCCESS;
   uint_32           temp;
 
   print_usage = Shell_check_help_request(argc, argv, &shorthelp );

   if (!print_usage)  {
      if (argc > 2) {
         printf("Error, invalid number of parameters\n");
         return_code = SHELL_EXIT_ERROR;
         print_usage=TRUE;
      } else {
         if (argc == 2) {
            if (*argv[1] == 'f') {
               HVAC_SetTemperatureScale(Fahrenheit);
            } else if (*argv[1] == 'c') {
               HVAC_SetTemperatureScale(Celsius);
            } else {
               printf("Invalid temperature scale\n");
            } 
         }

         if (HVAC_GetTemperatureScale() == Fahrenheit) {
            printf("Temperature scale is Fahrenheit\n");
         } else {
            printf("Temperature scale is Celsius\n");
         }         
         temp  = HVAC_GetDesiredTemperature();
         printf("Desired Temperature is %d.%1d %c\n", temp/10, temp%10, HVAC_GetTemperatureSymbol());
         temp  = HVAC_GetActualTemperature();
         printf("Actual Temperature is %d.%1d %c\n", temp/10, temp%10, HVAC_GetTemperatureSymbol());
      }
   }
   
   if (print_usage)  {
      if (shorthelp)  {
         printf("%s [c | f]\n", argv[0]);
      } else  {
         printf("Usage: %s [c | f]\n", argv[0]);
         printf("   c = switch to Celsius scale\n");
         printf("   f = switch to Fahrenheit scale\n");
      }
   }
   return return_code;
} 
Example #2
0
_mqx_int cgi_hvac_output(HTTPD_SESSION_STRUCT *session) {
    uint_32  len = 0;
    char     hvac[10], unit[10], fan[10], t[40];
    uint_32  temp,temp_fract=0;
    boolean  bParams = FALSE; 
    char buffer[100];

    session->response.contenttype = CONTENT_TYPE_HTML;
    httpd_sendhdr(session, 0, 0);

    httpd_sendstr(session->sock, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"
        "<html><head><title>HVAC Settings response</title>"
        "<meta http-equiv=\"REFRESH\" content=\"0;url=hvac.html\"></head>\n<body>\n");

//  html_link(session->sock,"Home","index.cgi");
//  html_link(session->sock,"HVAC Status","hvac.cgi");
//  html_link(session->sock,"HVAC Settings","hvac_input.cgi");
    //html_link(session->sock,"HVAC Log","hvac_log.txt");
    
    httpd_sendstr(session->sock, "<br><br>\n");
    
    if (session->request.content_len) {
        len = session->request.content_len;
        len = httpd_read(session, buffer, (int)((len > sizeof(buffer)) ? sizeof(buffer) : len));
        buffer[len] = 0;
        session->request.content_len -= len;
        len = 0;
        
        if (httpd_get_varval(session, buffer, "hvac", hvac, sizeof(hvac)) &&
            httpd_get_varval(session, buffer, "unit", unit, sizeof(unit)) &&
            httpd_get_varval(session, buffer, "temp", t, sizeof(t)) &&
            httpd_get_varval(session, buffer, "fan", fan, sizeof(fan))) {
            
            bParams =  TRUE;
         
            if (strcmp(hvac,"heat") == 0) {
                HVAC_SetHVACMode(HVAC_Heat);
            }
            else if (strcmp(hvac,"cool") == 0) {
                HVAC_SetHVACMode(HVAC_Cool);
            }
            else {
                HVAC_SetHVACMode(HVAC_Off);
            }
            
            if (strcmp(unit,"f") == 0)
                HVAC_SetTemperatureScale(Fahrenheit);
            else
                HVAC_SetTemperatureScale(Celsius);
         

            if (strcmp(fan,"auto") == 0) {
                HVAC_SetFanMode(Fan_Automatic);
            }
            else {
                HVAC_SetFanMode(Fan_On);
            }
        

        
            if (sscanf(t, "%d.%d", &temp, &temp_fract) >= 1) {
                if (temp_fract<10) {
                    HVAC_SetDesiredTemperature(temp * 10 + temp_fract);
                }
            }
        }
    }
  
   
    if (!bParams) {
        httpd_sendstr(session->sock, "No parameters received.<br>\n");
    }
    
    httpd_sendstr(session->sock, "</body></html>");
    return session->request.content_len;
}
Example #3
0
_mqx_int cgi_hvac_output(HTTPSRV_CGI_REQ_STRUCT* param)
{
    
    uint_32  len = 0;
    char     hvac[10];
    char     unit[10];
    char     fan[10];
    char     t[40];
    uint_32  temp = 0;
    uint_32  temp_fract = 0;
    boolean  bParams = FALSE; 
    char     buffer[100];
    HTTPSRV_CGI_RES_STRUCT response;
    
    if (param->request_method != HTTPSRV_REQ_POST)
    {
        return(0);
    }
    
    len = param->content_length;
    len = HTTPSRV_cgi_read(param->ses_handle, buffer, (len > sizeof(buffer)) ? sizeof(buffer) : len);
    
    if (param->content_length)
    {
        buffer[len] = 0;
        param->content_length -= len;
        len = 0;
        
        if (hvac_get_varval(buffer, "hvac", hvac, sizeof(hvac)) &&
            hvac_get_varval(buffer, "unit", unit, sizeof(unit)) &&
            hvac_get_varval(buffer, "temp", t, sizeof(t)) &&
            hvac_get_varval(buffer, "fan", fan, sizeof(fan))) {
            
            bParams =  TRUE;
         
            if (strcmp(hvac,"heat") == 0)
            {
                HVAC_SetHVACMode(HVAC_Heat);
            }
            else if (strcmp(hvac,"cool") == 0)
            {
                HVAC_SetHVACMode(HVAC_Cool);
            }
            else
            {
                HVAC_SetHVACMode(HVAC_Off);
            }
            
            if (strcmp(unit,"f") == 0)
            {
                HVAC_SetTemperatureScale(Fahrenheit);
            }
            else
            {
                HVAC_SetTemperatureScale(Celsius);
            }
            if (strcmp(fan,"auto") == 0)
            {
                HVAC_SetFanMode(Fan_Automatic);
            }
            else
            {
                HVAC_SetFanMode(Fan_On);
            }
        
            if (sscanf(t, "%d.%d", &temp, &temp_fract) >= 1)
            {
                if (temp_fract<10)
                {
                    HVAC_SetDesiredTemperature(temp * 10 + temp_fract);
                }
            }
        }
    }
    response.ses_handle = param->ses_handle;
    response.content_type = HTTPSRV_CONTENT_TYPE_HTML;
    response.status_code = 200;
    response.data = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">"
        "<html><head><title>HVAC Settings response</title>"
        "<meta http-equiv=\"REFRESH\" content=\"0;url=hvac.shtml\"></head>\n<body>\n";
    response.data_length = strlen(response.data);
    response.content_length = 0;
    HTTPSRV_cgi_write(&response);
    
    if (!bParams)
    {
        response.data = "No parameters received.<br>\n";
        response.data_length = strlen(response.data);
        HTTPSRV_cgi_write(&response);
    }
    response.data = "<br><br>\n</body></html>";
    response.data_length = strlen(response.data);
    HTTPSRV_cgi_write(&response);    
    return (response.content_length);
}