Esempio n. 1
0
uint8_t ESP_SendATCommand(uint8_t *cmd, uint8_t *rxBuf, size_t rxBufSize, uint8_t *expectedTailStr)
{
  uint16_t snt;

  if (AS2_SendBlock(cmd, (uint16_t)UTIL1_strlen((char*)cmd), &snt) != ERR_OK) {
    return ERR_FAILED;
  }
  return RxResponse(rxBuf, rxBufSize, ESP_TIMOUT_MS, expectedTailStr);
}
Esempio n. 2
0
uint8_t ESP_SendATCommand(uint8_t *cmd, uint8_t *rxBuf, size_t rxBufSize, uint8_t *expectedTailStr, uint16_t msTimeout, const CLS1_StdIOType *io) {
  uint16_t snt;
  uint8_t res;

  if (rxBuf!=NULL) {
    rxBuf[0] = '\0';
  }
  if (io!=NULL) {
    CLS1_SendStr("sending>>:\r\n", io->stdOut);
    CLS1_SendStr(cmd, io->stdOut);
  }
  if (AS2_SendBlock(cmd, (uint16_t)UTIL1_strlen((char*)cmd), &snt) != ERR_OK) {
    return ERR_FAILED;
  }
  if (rxBuf!=NULL) {
    res = RxResponse(rxBuf, rxBufSize, expectedTailStr, msTimeout);
    if (io!=NULL) {
      CLS1_SendStr("received<<:\r\n", io->stdOut);
      CLS1_SendStr(rxBuf, io->stdOut);
    }
  }
  return res;
}
Esempio n. 3
0
void HTU21_TASK(void)
{
	  static uint8_t   state = TRIGGER_HUM ;
	  static uint8_t    retry_times = 0 ;
	  int16_t   dst_buffer;
	  uint16_t  src_buffer;
	  uint16_t  humidity_buf ;
	  int16_t   temperature_buf = 0 ;
		char str[20] ;
	  switch(state)
      {
         case TRIGGER_HUM:
            if(htu21d_trigger_measurement_no_hold_master(SELECT_HUM))
            {
               state = READ_HUM;
               retry_times = 0;
            }
            else
            {
               retry_times++;
               if(retry_times >= 5)
               {
                  state = READ_TEMP;
									retry_times =0 ;
               }
            }
            break;
         case TRIGGER_TEMP:
            if(htu21d_trigger_measurement_no_hold_master(SELECT_TEMP))
            {
               state = READ_TEMP;
               retry_times = 0;
            }
            else
            {
               retry_times++;
               if(retry_times >= 5)
               {
                  state = READ_HUM;
				  retry_times =0 ;
               }
            }
            break;
         case READ_HUM:
            if(htu21d_read_measurement_no_hold_master(SELECT_HUM, &src_buffer))
            {
               //printd("Read HUM success src_buffer =0x%x\n\r" ,src_buffer);
							 if(htu21d_calculation(SELECT_HUM, src_buffer, &dst_buffer))
               {
									humidity_buf = dst_buffer;            
									modbus.HH =	 Calculate(humidity_buf, modbus.Hum_SensorValue, modbus.Hum_MeterValue, modbus.Hum_Cal_point);	
								  sprintf(str, "HH=%u\n\r", (uint16_t)modbus.HH);
									AS2_SendBlock(AS2_ptr, str, strlen(str))  ;
								  Delay(3);
               }
               state = TRIGGER_TEMP;
			  // state = TRIGGER_HUM;
               retry_times = 0;
            }
            else
            {
               retry_times++;
               if(retry_times >= 5)
               {
									state = READ_TEMP;
									retry_times = 0 ;
               }
            }
            break;
         case READ_TEMP:
            if(htu21d_read_measurement_no_hold_master(SELECT_TEMP, &src_buffer))
            {
               //printd("Read Temp success src_buffer =0x%x\n\r" ,src_buffer);
			   if(htu21d_calculation(SELECT_TEMP, src_buffer, &dst_buffer))
               {
                  temperature_buf =  dst_buffer ;
									modbus.HT =   temperature_buf ;
								 sprintf(str, "HT=%u\n\r", (uint16_t)modbus.HT);
								 AS2_SendBlock(AS2_ptr, str, strlen(str))  ;
								 Delay(5);
				 // printd("\n\rH_T = %d Hum = %u", modbus.H_Temp,modbus.Hum);
				  //temperature_buf = dst_buffer;
                  //temperature_value = temperature_buf + temperature_calibration;
               }
               state = TRIGGER_HUM;
               retry_times = 0;
            }
            else
            {
               retry_times++;
               if(retry_times >= 5)
               {
                  state = READ_HUM;
				  retry_times = 0 ;
               }
            }
            break; 
         default:
            break;
      }	
}