Exemple #1
0
void Mirobot::updateHandler(){
  if(_updateFWflag){
    _updateFWflag = false;
    updateFirmware();
  }
  if(_updateUIflag){
    _updateUIflag = false;
    updateUI();
  }
}
/*! Delayed trigger to update the firmware.
 */
void DeRestPluginPrivate::firmwareUpdateTimerFired()
{
    if (otauLastBusyTimeDelta() < OTA_LOW_PRIORITY_TIME)
    {
        fwUpdateState = FW_Idle;
        fwUpdateTimer->start(FW_IDLE_TIMEOUT);
    }
    else if (fwUpdateState == FW_Idle)
    {
        if (gwFirmwareNeedUpdate)
        {
            gwFirmwareNeedUpdate = false;
            updateEtag(gwConfigEtag);
        }
        fwUpdateState = FW_CheckDevices;
        fwUpdateTimer->start(0);
    }
    else if (fwUpdateState == FW_CheckDevices)
    {
        checkFirmwareDevices();
    }
    else if (fwUpdateState == FW_CheckVersion)
    {
        queryFirmwareVersion();
    }
    else if (fwUpdateState == FW_DisconnectDevice)
    {
        updateFirmwareDisconnectDevice();
    }
    else if (fwUpdateState == FW_Update)
    {
        updateFirmware();
    }
    else if (fwUpdateState == FW_UpdateWaitFinished)
    {
        updateFirmwareWaitFinished();
    }
    else if (fwUpdateState == FW_WaitUserConfirm)
    {
        fwUpdateState = FW_Idle;
        fwUpdateTimer->start(FW_IDLE_TIMEOUT);
    }
    else
    {
        fwUpdateState = FW_Idle;
        fwUpdateTimer->start(FW_IDLE_TIMEOUT);
    }
}
Exemple #3
0
bool OwlNestSettings::perform(const InvocationInfo& info){
  switch(info.commandID){
  case ApplicationCommands::updateFirmware:
    updateFirmware();
    break;
  case ApplicationCommands::updateBootloader:
    updateBootloader();
    break;
  case ApplicationCommands::checkForFirmwareUpdates:
    downloadFromServer(info.commandID);
    break;
  case ApplicationCommands::checkForBootloaderUpdates:
    downloadFromServer(info.commandID);
    break;
  case ApplicationCommands::owlNestVersionInfo:
    AlertWindow alert("About", ApplicationConfiguration::getApplicationDescription(), juce::AlertWindow::InfoIcon);
    alert.addButton("Close", 1, juce::KeyPress(), juce::KeyPress());
    alert.runModalLoop();
    break;
          
  }
  return true;
}
Exemple #4
0
/*
 * register module to server 
 */
int register2Server()
{
	int ret = -1;
	msg msgbuf;
	int counter=0;
	int srv_fd;
	struct timeval tv;
	tv.tv_sec=1;
	tv.tv_usec=0;

	srv_fd = socket(PF_INET,SOCK_STREAM,0);
	if(srv_fd < 0){
		perror("can't open socket\n");
		exit(1);
	}
	server_addr.sin_port = htons(SERVER_PORT);
	
	ret = connect(srv_fd, (struct sockaddr*)&server_addr, sizeof(struct sockaddr));
	if(ret < 0){
		printf("can not connect to server\n");
		close(srv_fd);
		return -1;
	}
	printf("connect to server\n");

	/*****************************/
	/******** REQ_REGISTER *******/
	/*****************************/
	printModuleInfo();
	ret = sendData(srv_fd, REQ_REGISTER, &g_moduleInfo, sizeof(moduleInfo));
	if(ret < 0){
		/* FIXME */
		printf("%s:sendData error",__FUNCTION__);
		return -1;
	}
	ret = recvData(srv_fd, &msgbuf, &tv);
	if(ret<0 || ret==0 || msgbuf.dataType != RESP_SUCCESS){
		return -1;
	}

	/***********************************/
	/******* REQ_FIRTWARE_UPDATE *******/
	/***********************************/
#ifndef DEBUG_PC
	ret = sendData(srv_fd, REQ_FIRTWARE_UPDATE, g_moduleInfo.fwVersion, 
					sizeof(g_moduleInfo.fwVersion));
#else

	ret = sendData(srv_fd, REQ_FIRTWARE_UPDATE, NULL, 0);
#endif
	if(ret < 0){
		/* FIXME */
		printf("%s:sendData error\n",__FUNCTION__);
		return -1;
	}
	tv.tv_sec=1;
	tv.tv_usec=0;
	ret = recvData(srv_fd, &msgbuf, &tv);
	if(ret<0 || ret==0  || msgbuf.dataType != REQ_FIRTWARE_UPDATE){
		printf("REQ_FIRTWARE_UPDATE response error\n");
		return -1;
	}
	if( *(int*)(msgbuf.dataBuf) == 1 ){
		recvFirmware(srv_fd);
	    //this function will reboot the module!!				
		updateFirmware();
		exit(0);
	}

	/**********************/
	/***** REQ_CONFIG *****/
	/**********************/
	ret = sendData(srv_fd, REQ_CONFIG, NULL, 0);
	if(ret < 0){
		/* FIXME */
		printf("%s:sendData error",__FUNCTION__);
		return -1;
	}
	tv.tv_sec=1;
	tv.tv_usec=0;
	ret = recvData(srv_fd, &msgbuf, &tv);
	if(ret<0 ||ret==0 || msgbuf.dataType != REQ_CONFIG){
		printf("REQ_FIRTWARE_UPDATE response error\n");
		return -1;
	}
	if( msgbuf.dataSize!=0 ){
		//doConfiguration(buf, buflen);
		return -1;
	}

	/***********************/
	/******* REQ_RUN ******/
	/**********************/
	ret = sendData(srv_fd, REQ_RUN, NULL, 0);
	if(ret < 0){
		/* FIXME */
		printf("%s:sendData error",__FUNCTION__);
		return -1;
	}
	tv.tv_sec=1;
	tv.tv_usec=0;
	ret = recvData(srv_fd, &msgbuf, &tv);
	if(ret<0 ||ret==0 || msgbuf.dataType != RESP_SUCCESS){
		printf(" REQ_RUN error\n");
		return -1;
	}
	g_state = STATE_RUN;
	close(srv_fd);
	srv_fd = -1;
	return 0;

}