Esempio n. 1
0
void loop()
{
  //显示系统参数信息
  if (Serial_available()) {    				  //WIFI消息 处理 
	wifi_process_msg(); 
  }
 
}
Esempio n. 2
0
/*******************************************************************************
* 函数名称: main
* 输入参数: 
* 输出参数: 
* --返回值: 
* 函数功能: --
*******************************************************************************/
void main(void)
{ 
    //Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;
    
    /* power on setup */ 
    setup();

//    __enable_irq();   //EA = 1
    __enable_interrupt();

    while (1)
    {
        taskFlag = Serial_available(RF.TxBuff, Serial_fixed_TxRx_Len);
    	if (1u == taskFlag)
    	{
            taskFlag = 0u;
			CC1101_Send(RF.TxBuff, RF_payloadSize);
		}
		else
		{
		}

		taskFlag = CC1101_available(Serial.TxBuff, RF_payloadSize);
    	if (1u == taskFlag)
    	{
            taskFlag = 0u;
    		Serial_TxMode();
		}
		else
		{
		}	
		
        //CC1101_debug();
  		
    }//end while
}
Esempio n. 3
0
void CommandProcess()
{
	// Read incoming control messages
	if (Serial_available() >= 2)
	{
		char start=Serial_read();
		if (start == '@') {// Start of new control message
			int command = Serial_read(); // Commands
			if (command == 'h') {//Hook AHRS Stack Device
				// Read ID
				char id[2];
				id[0] = GetChar();
				id[1] = GetChar();
				// Reply with synch message
				printf("@HOOK");
				Serial_write(id, 2);
			}
			else if (command == 'v') {//Check Version
				CheckVersion();
			}
			else if (command == 'c') {// A 'c'calibration command
				SensorCalibration();
			}
			else if (command == 'b') {// 'b'lock erase flash
				FlashControl();
			}
			else if (command == 'p') {// Set 'p'id command
				SetPID();
			}
			else if (command == 'm') {// Set report 'm'ode
				char mode = GetChar();
				if (mode == 'e') {// Report AHRS by 'e'uler angle
					report_mode = REPORT_AHRS_EULER;
				}
				else if (mode == 'q') {// Report // Report AHRS by 'q'quaternion
					report_mode = REPORT_AHRS_QUATERNION;
				}
				else if (mode == 'r') {// Report sensor 'r'aw data
					report_mode = REPORT_SENSORS_RAW;
				}
				else if (mode == 'c') {// Report sensor 'c'alibrated data
					report_mode = REPORT_SENSORS_CALIBRATED;
				}
				else if (mode == 'm') {// Report 'm'otor power distribution
					report_mode = REPORT_MOTOR_POWER;
				}
				else if (mode == 'v') {// Report 'v'elocity
					report_mode = REPORT_VELOCITY;
				}
				else if (mode == 's') {// Report 's'tatus
					report_status();
				}
				else if (mode == 'p') {// Report controller 'p'id
					char type = GetChar();
					if (type == 'p') // 'p'id
						report_mode = REPORT_PID;
					else if (type == 'r') //'r'ate pid
						report_mode = REPORT_RATE_PID;
					else if (type == 'a') //'a'ltitude hold pid
						report_mode = REPORT_ALTHOLD_PID;
				}
			}
			else if (command == 'f') {// Set report 'f'ormat
				char format = GetChar();
				if (format == 'b') {// Report 'b'inary format
					report_format = REPORT_FORMAT_BINARY;
				}
				else if (format == 't') {// Report 't'ext format
					report_format = REPORT_FORMAT_TEXT;
				}
			}
			else if (command == 's') {// 's'tream output control
				char mode = GetChar();
				if (mode == 's') {// 's'tart stream
					stream_mode = STREAM_START;
				}
				else if (mode == 'p') {// 'p'ause stream
					stream_mode = STREAM_PAUSE;
				}
				else if (mode == 't') {// 't'oggle stream
					if(stream_mode==STREAM_START)
						stream_mode = STREAM_PAUSE;
					else
						stream_mode = STREAM_START;
				}
			}
		}
		else { 
			if (report_format == REPORT_FORMAT_TEXT) {
			printf("Unknown command.\n");
			}
		} // Skip character
	}
}
Esempio n. 4
0
void Plugin_011_FLC(void)                                                       // wordt vanuit de hoofdloop van de Nodo-core zeer frequent aangeroepen.
  {  
  static byte count=0;
  char received;

  if(PLUGIN_011_LedTimer>millis())
    digitalWrite(PIN_WIRED_OUT_2, HIGH);
  else
    digitalWrite(PIN_WIRED_OUT_2, LOW);

  while(Serial_available())
    {
    received=Serial_read();

    if(count<PLUGIN_011_BUFFERSIZE && isprint(received) && (isalpha(received) || isxdigit(received)))
      PLUGIN_011_buffer[count++]=received;

    if(received==0x0A)
      {
      PLUGIN_011_buffer[count]=0;

      PLUGIN_011_WatchDogTimer=millis() + PLUGIN_011_WATCHDOG_TIMEOUT;

      #if HARDWARE_SERIAL_1
      Serial.print(PLUGIN_011_buffer);
      #endif // HARDWARE_SERIAL_1
              
      byte source = PLUGIN_011_buffer[0];
      byte b1     = PLUGIN_011_hextobyte(PLUGIN_011_buffer,1);
      byte b2     = PLUGIN_011_hextobyte(PLUGIN_011_buffer,3);
      byte b3     = PLUGIN_011_hextobyte(PLUGIN_011_buffer,5);
      byte b4     = PLUGIN_011_hextobyte(PLUGIN_011_buffer,7);
      
      OTGW_Data=(((unsigned long)b1)<<24) + (((unsigned long)b2)<<16) + (((unsigned long)b3)<<8) + ((unsigned long)b4);
      
      if(source==0x54)                                                          // Source = Thermostat
        {
        if (b2 == 0x18)					                                                // +1 Room Temperature
          {
          TempFloat=b3+b4*((float)1/256);
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 1, TempFloat, OTGW_Data);
          }

        if (b2 == 0x10)					                                                // +5 Thermostat Set Point
          {
          TempFloat=b3+b4*((float)1/256);
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 5, TempFloat, OTGW_Data);
          }
        } // if(source==0x54)


      if(source==0x42)                                                          // Source = Boiler
        {
      	if (b2 == 0x19)					                                                // +2 Boiler Water Temperature
          {
          TempFloat=b3+b4*((float)1/256);
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 2, TempFloat, OTGW_Data);
          }

        if (b2 == 0x11)					                                                // +3 Relative Modulation
          {
          TempFloat=b3+b4*((float)1/256);
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 3, TempFloat, OTGW_Data);
          }

        if (b2 == 0x12)					                                                // +4 Boiler Water Pressure
          {
          TempFloat=b3+b4*((float)1/256);
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 4, TempFloat, OTGW_Data);
          }

        if (b2 == 0x00)					                                                // Boiler Status
          {
          TempFloat=(float)((b4 & 0x8) >> 3);                                   // +6 Flame Status in bit 3
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 6, TempFloat, OTGW_Data);

          TempFloat=(float)((b4 & 0x4) >> 2);	  		                            // +8 DHW Mode in bit 2
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 8, TempFloat, OTGW_Data);
          }

        if (b2 == 0x1C)					                                                // +7 Boiler Water Return Temperature
          {
          TempFloat=b3+b4*((float)1/256);
          PLUGIN_011_VarChange(PLUGIN_011_CORE + 7, TempFloat, OTGW_Data);
          }

        }// if (source==0x42)
        
      #if HARDWARE_SERIAL_1
      Serial.println();
      #endif

      PLUGIN_011_buffer[0]=0;
      count=0;      
      } // if(received[x]==..)
Esempio n. 5
0
void serialEventRun(void)
{
    if (Serial_available && serialEvent && Serial_available()) serialEvent();
}