Пример #1
0
/***************************************************************************************************
*FunctionName: activityFresh
*Description: 界面刷新
*Input: 
*Output: 
*Return: 
*Author: xsx
*Date: 2016年12月21日09:01:16
***************************************************************************************************/
static void activityFresh(void)
{
	S_WaitPageData->cnt++;
	
	if(S_WaitPageData->cnt % 5 == 0)
	{
		/*是否插卡*/
		if(GetCardState() == CardIN)
		{
			stopPlay();
			S_WaitPageData->currenttestdata->statues = status_preread;
			startActivity(createPreReadCardActivity, NULL);
			return;
		}
		/*时间到,未插卡,返回*/
		else if(TimeOut == timer_expired(&(S_WaitPageData->timer2)))
		{
			AddNumOfSongToList(11, 0);
			timer_restart(&(S_WaitPageData->timer2));
		}
	}
	
	
	//如果排队中,有卡接近测试时间,则删除当前测试创建任务,返回
	if(GetMinWaitTime() < 40)
	{
		stopPlay();
		MotorMoveTo(1, 2, MaxLocation, FALSE);
		DeleteCurrentTest();
		
		backToActivity(paiduiActivityName);
	}
}
Пример #2
0
void BootupAnimation::pipeDataAvailable(int pipe)
{
	char buffer[BOOT_ANIM_MESSAGE_LENGHT];
	int index = 0;
	char data;
	
	while(index < BOOT_ANIM_MESSAGE_LENGHT && (::read(pipe, &(buffer[index]), 1) == 1)) {
		index++;
	}
	if(buffer[0] == BOOT_ANIM_MESSAGE_END_ANIMATION) {
		stop();
	} else if(buffer[0] == BOOT_ANIM_MESSAGE_START_PROGRESS) {
		startActivity();
	} else if(buffer[0] == BOOT_ANIM_MESSAGE_END_PROGRESS) {
		stopActivity();
	} else if(buffer[0] == BOOT_ANIM_MESSAGE_PROGRESS_UPDATE) {
		int val, total;
		
		int* p = (int*)&(buffer[1]);
		val = *p;
		
		p = (int*)&(buffer[1 + sizeof(int)]);
		total = *p;

		setActivityProgress(val, total);
	} 
}
Пример #3
0
void ActivityManager::activityAdded(QString id) {
  // skip the Status source
  if (id == "Status")
    return;
  // create a new activity object
  ActivityWidget *activity = new ActivityWidget(extender()->item("Activities"), id);
  // add activity to the list
  m_activities.insert(id, activity);
  // connect activity update signal
  dataEngine("org.kde.activities")->connectSource(id, this);
  // connect activity start/stop signals
  connect(activity, SIGNAL(setCurrent(QString)), this, SLOT(setCurrent(QString)));
  connect(activity, SIGNAL(startActivity(QString)), this, SLOT(start(QString)));
  connect(activity, SIGNAL(stopActivity(QString)), this, SLOT(stop(QString)));
  connect(activity, SIGNAL(addActivity(QString)), this, SLOT(add(QString)));
  connect(activity, SIGNAL(removeActivity(QString)), this, SLOT(remove(QString)));
  connect(activity, SIGNAL(renameActivity(QString,QString)), this, SLOT(setName(QString,QString)));
}
Пример #4
0
void
DetectionTask::handleMsg(Msg *msg)
{
	DxOpsBitset operations;

	switch (msg->getCode()) {
	case StartDetection:
		// start the signal detection
		startActivity(msg);
		break;
	case CwComplete:
		if (!activity)
			break;
		operations = params.operations;
		if (activity->getState() == DX_ACT_STOPPING)
			sendDetectionComplete();
		else
			startPulseDetection();
		break;
	case PulseComplete:
		sendDetectionComplete();
		break;
	case STOP_DX_ACTIVITY:
		stopActivity(msg);
		break;
	case ActivityStopped:
		sendDetectionComplete();
		break;
	case SHUTDOWN_DX:
	case RESTART_DX:
		stopActivity(msg, true);
		break;
	default:
		break;
	}
}
Пример #5
0
void
stopActivity (ActivityObject *activity) {
  logActivityActionRequest(activity, "stop");

  while (1) {
    switch (activity->state) {
      case ACT_PREPARING:
        setActivityState(activity, ACT_PREPARING_STOP);
        continue;

      case ACT_PREPARED:
        setActivityState(activity, ACT_STOPPED);
        continue;

      case ACT_SCHEDULED:
        cancelActivityStartAlarm(activity);
        setActivityState(activity, ACT_PREPARED);
        continue;

      case ACT_STARTING:
      case ACT_STARTING_RESTART:
        setActivityState(activity, ACT_STARTING_STOP);
        continue;

      case ACT_STARTED: {
        ActivityStopMethod *stop = activity->methods->stop;

        if (stop) {
          ActivityState newState;

          setActivityState(activity, ACT_STOPPING);
          stop(activity->data);
          newState = activity->state;
          setActivityState(activity, ACT_STOPPED);

          if (newState == ACT_STOPPING_START) {
            startActivity(activity);
          } else if (newState != ACT_STOPPING) {
            logUnexpectedActivityState(activity, "stopping");
          }
        } else {
          setActivityState(activity, ACT_STOPPED);
        }

        return;
      }

      case ACT_STOPPING_START:
        setActivityState(activity, ACT_STOPPING);
        continue;

      case ACT_PREPARING_STOP:
      case ACT_STARTING_STOP:
      case ACT_STOPPING:
      case ACT_STOPPED:
        return;
    }

    logUnexpectedActivityState(activity, "stop");
    break;
  }
}
Пример #6
0
/***************************************************************************************************
*FunctionName: activityInput
*Description: 界面输入
*Input: 
*Output: 
*Return: 
*Author: xsx
*Date: 2016年12月21日09:00:59
***************************************************************************************************/
static void activityInput(unsigned char *pbuf , unsigned short len)
{
	S_UserPageBuffer->lcdinput[0] = pbuf[4];
	S_UserPageBuffer->lcdinput[0] = (S_UserPageBuffer->lcdinput[0]<<8) + pbuf[5];
		
	/*返回*/
	if(S_UserPageBuffer->lcdinput[0] == 0x1200)
	{
		DeleteCurrentTest();
			
		backToActivity(lunchActivityName);
	}
		
	/*上翻也*/
	else if(S_UserPageBuffer->lcdinput[0] == 0x1203)
	{			
		if(S_UserPageBuffer->pageindex > 1)
		{
			S_UserPageBuffer->pageindex--;
						
			S_UserPageBuffer->selectindex = 0;
						
			ShowList();
			SelectUser(S_UserPageBuffer->selectindex);
		}
	}
	/*下翻页*/
	else if(S_UserPageBuffer->lcdinput[0] == 0x1204)
	{			
		if(S_UserPageBuffer->pageindex < (MaxUserNum / MaxPageShowNum))
		{
			S_UserPageBuffer->tempUser = &S_UserPageBuffer->user[(S_UserPageBuffer->pageindex)*MaxPageShowNum];
			
			if(S_UserPageBuffer->tempUser->crc == CalModbusCRC16Fun1(S_UserPageBuffer->tempUser, sizeof(User_Type)-2))
			{
				S_UserPageBuffer->pageindex++;
						
				S_UserPageBuffer->selectindex = 0;
						
				ShowList();
				SelectUser(S_UserPageBuffer->selectindex);
			}
		}
	}
	/*确定*/
	else if(S_UserPageBuffer->lcdinput[0] == 0x1201)
	{
		if(S_UserPageBuffer->tempUser2 != NULL)
		{
			//如果是排队测试,则保存操作人到排队测试共用操作人
			if(S_UserPageBuffer->currenttestdata->testlocation > 0)
				SetPaiduiUser(S_UserPageBuffer->tempUser2);
				
			/*以当前选择的操作人作为本次测试数据的操作人*/
			memcpy(&(S_UserPageBuffer->currenttestdata->testdata.user), S_UserPageBuffer->tempUser2, sizeof(User_Type));
			
			startActivity(createSampleActivity, NULL);
		}
		else
		{
			AddNumOfSongToList(9, 0);
			SendKeyCode(1);
		}
	}
	/*选择操作人*/
	else if((S_UserPageBuffer->lcdinput[0] >= 0x1205)&&(S_UserPageBuffer->lcdinput[0] <= 0x1209))
	{			
		S_UserPageBuffer->selectindex = S_UserPageBuffer->lcdinput[0] - 0x1205+1;
		SelectUser(S_UserPageBuffer->selectindex);
	}
	//编辑操作人
	if(S_UserPageBuffer->lcdinput[0] == 0x120a)
	{
		startActivity(createUserManagerActivity, NULL);
	}
}
Пример #7
0
void MainWindow::on_leTags_returnPressed()
{
  startActivity();
}
Пример #8
0
void MainWindow::on_btnStartActivity_clicked()
{
  startActivity();
}
Пример #9
0
/***************************************************************************************************
*FunctionName: activityInput
*Description: 界面输入
*Input: 
*Output: 
*Return: 
*Author: xsx
*Date: 2016年12月21日09:00:59
***************************************************************************************************/
static void activityInput(unsigned char *pbuf , unsigned short len)
{
	if(S_SysSetPageBuffer)
	{
		/*命令*/
		S_SysSetPageBuffer->lcdinput[0] = pbuf[4];
		S_SysSetPageBuffer->lcdinput[0] = (S_SysSetPageBuffer->lcdinput[0]<<8) + pbuf[5];
		
		//基本信息
		if(S_SysSetPageBuffer->lcdinput[0] == 0x1900)
		{
			startActivity(createDeviceInfoActivity, NULL);
		}
		//操作人管理
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1901)
		{
			startActivity(createUserManagerActivity, NULL);
		}
		//网络设置
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1902)
		{
			startActivity(createNetPreActivity, NULL);
		}
		//数据管理
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1903)
		{
			startActivity(createRecordActivity, NULL);
		}
		//关于按键第一次按下
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1909)
		{
			S_SysSetPageBuffer->pressCnt = 0;
		}
		//关于按键持续按下
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x190A)
		{
			S_SysSetPageBuffer->pressCnt++;
		}
		//关于按键松开
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x190B)
		{
			//如果是长按就输入密码进入隐藏功能
			if(S_SysSetPageBuffer->pressCnt > 10)
				SendKeyCode(4);
			//短按则进入关于界面
			else
				startActivity(createAboutUsActivity, NULL);
		}
		//隐藏密码的厂家功能
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1910)
		{
			if(GetBufLen(&pbuf[7] , 2*pbuf[6]) == 6)
			{
				if(pdPASS == CheckStrIsSame(&pbuf[7], TestPassWord, 6))
				{
					startActivity(createReTestActivity, NULL);
				}
				else if(pdPASS == CheckStrIsSame(&pbuf[7], CheckQRPassWord, 6))
				{
					startActivity(createCheckQRActivity, NULL);
				}
				else if(pdPASS == CheckStrIsSame(&pbuf[7], AdjLedPassWord, 6))
				{
					startActivity(createAdjustLedActivity, NULL);
				}
				else if(pdPASS == CheckStrIsSame(&pbuf[7], FactoryResetPassWord, 6))
				{
					if(My_Pass == SystemReset())
						SendKeyCode(2);
					else
						SendKeyCode(1);
				}
				else if(pdPASS == CheckStrIsSame(&pbuf[7], ChangeValueShowTypePassWord, 6))
				{
					setIsShowRealValue(TRUE);
					SendKeyCode(2);
				}
				else if(pdPASS == CheckStrIsSame(&pbuf[7], UnlockLCDPassWord, 6))
				{
					unLockLCDOneTime();
					SendKeyCode(2);
				}
				/*else if(pdPASS == CheckStrIsSame(&pbuf[7], EnableUSBPassWord, 6))
				{
					USBD_Init(&USB_OTG_dev,USB_OTG_FS_CORE_ID,&USR_desc,&USBD_MSC_cb,&USR_cb);
				}*/
				else
					SendKeyCode(1);
			}
			else
				SendKeyCode(1);
		}
		//其他设置
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1904)
		{
			startActivity(createOtherSetActivity, NULL);
		}
		//返回
		else if(S_SysSetPageBuffer->lcdinput[0] == 0x1906)
		{
			backToFatherActivity();
		}
	}
}
Пример #10
0
/***************************************************************************************************
*FunctionName: activityFresh
*Description: 界面刷新
*Input: 
*Output: 
*Return: 
*Author: xsx
*Date: 2016年12月21日09:01:16
***************************************************************************************************/
static void activityFresh(void)
{
	unsigned char index = 0;
	
	if(S_PaiDuiPageBuffer)
	{
		S_PaiDuiPageBuffer->count2++;
		
		//界面忙
		S_PaiDuiPageBuffer->pageisbusy = TRUE;

		//检测一次排队模块是否正常
		if(Connect_Error == getPaiduiModuleStatus())
		{
			if(TimeOut == timer_expired(&(S_PaiDuiPageBuffer->timer1)))
			{
				timer_set(&(S_PaiDuiPageBuffer->timer1), 5);
				SendKeyCode(6);
				AddNumOfSongToList(57, 2);
			}
		}
			
		//500ms刷新一次界面
		if(S_PaiDuiPageBuffer->count2 % 5 == 0)
		{
			//如果当前功能处于禁止状态,且电机位置处于最大行程,且卡槽无卡,且最近的卡大于 则启用插卡自动创建功能
			if((S_PaiDuiPageBuffer->timer0.interval == 65535) && (MaxLocation == GetGB_MotorLocation()) && (!CardPinIn))
			{
				timer_set(&(S_PaiDuiPageBuffer->timer0), 1);
			}

			//如果当前空闲,且扫描时间到,则检测是否插卡了
			if(TimeOut == timer_expired(&(S_PaiDuiPageBuffer->timer0)))
			{
				//如果当前空闲,且已经插卡
				if((CardPinIn) && (NULL == GetCurrentTestItem()))
				{
					S_PaiDuiPageBuffer->error = CreateANewTest(PaiDuiTestType);
					//创建成功
					if(Error_OK == S_PaiDuiPageBuffer->error)
					{
						vTaskDelay(1000 / portTICK_RATE_MS);
						//创建成功,则使电机远离,防止用户拔卡
						MotorMoveTo(1, 2, 1000, FALSE);			
						startActivity(createSampleActivity, NULL);		
						return;
					}
					//排队位置满,不允许
					else if(Error_PaiduiFull == S_PaiDuiPageBuffer->error)
					{
						SendKeyCode(2);
						AddNumOfSongToList(19, 2);
						timer_set(&(S_PaiDuiPageBuffer->timer0), 65535);
					}
					//创建失败
					else if(Error_Mem == S_PaiDuiPageBuffer->error)
					{
						SendKeyCode(1);
						AddNumOfSongToList(7, 0);
						timer_set(&(S_PaiDuiPageBuffer->timer0), 65535);
					}
					//有卡即将测试
					else if(Error_PaiDuiBusy == S_PaiDuiPageBuffer->error)
					{
						SendKeyCode(3);
						AddNumOfSongToList(20, 0);
						timer_set(&(S_PaiDuiPageBuffer->timer0), 65535);
					}
					//测试中禁止添加
					else if(Error_PaiduiTesting == S_PaiDuiPageBuffer->error)
					{
						SendKeyCode(4);
						AddNumOfSongToList(21, 0);
						timer_set(&(S_PaiDuiPageBuffer->timer0), 65535);
					}
					//排队模块失联
					else if(Error_PaiduiDisconnect == S_PaiDuiPageBuffer->error)
					{
						SendKeyCode(5);
						AddNumOfSongToList(58, 0);
					}
				}
			}
			//更新倒计时数据
			for(index=0; index<PaiDuiWeiNum; index++)
			{
				S_PaiDuiPageBuffer->tempd2 = GetTestItemByIndex(index);
				
				if(S_PaiDuiPageBuffer->tempd2)
				{
					DspNum(0x1506+index, S_PaiDuiPageBuffer->tempd2->statues, 2);
					//超时
					if(isInTimeOutStatus(S_PaiDuiPageBuffer->tempd2))
					{
						S_PaiDuiPageBuffer->tempvalue1 = timer_Count(&(S_PaiDuiPageBuffer->tempd2->timer2));
						if(S_PaiDuiPageBuffer->tempvalue1 > 60)
							sprintf(S_PaiDuiPageBuffer->buf, "%02dM", S_PaiDuiPageBuffer->tempvalue1/60);
						else
							sprintf(S_PaiDuiPageBuffer->buf, "%02dS", S_PaiDuiPageBuffer->tempvalue1);
		
						WriteVarIcoNum(0x1510+index*16, 50);
					}
					else
					{
						S_PaiDuiPageBuffer->tempvalue1 = timer_surplus(&(S_PaiDuiPageBuffer->tempd2->timer));
						if(S_PaiDuiPageBuffer->tempvalue1 > 60)
							sprintf(S_PaiDuiPageBuffer->buf, "%02dM", S_PaiDuiPageBuffer->tempvalue1/60);
						else
							sprintf(S_PaiDuiPageBuffer->buf, "%02dS", S_PaiDuiPageBuffer->tempvalue1);							
						
						S_PaiDuiPageBuffer->tempvalue = S_PaiDuiPageBuffer->tempd2->testdata.temperweima.CardWaitTime*60 - S_PaiDuiPageBuffer->tempvalue1;
						S_PaiDuiPageBuffer->tempvalue /= S_PaiDuiPageBuffer->tempd2->testdata.temperweima.CardWaitTime*60;
						S_PaiDuiPageBuffer->tempvalue *= 50;

						WriteVarIcoNum(0x1510+index*16, (unsigned short)(S_PaiDuiPageBuffer->tempvalue));
					}
					
					DisText(0x1610+index*0x08, S_PaiDuiPageBuffer->buf, 10);
					
					if((S_PaiDuiPageBuffer->tempd2->statues == status_timedown) || (S_PaiDuiPageBuffer->tempd2->statues == status_timeup)){
						BasicPic(0x1590+index*0x10, 1, 138, 10+85*S_PaiDuiPageBuffer->tempd2->testdata.temperweima.itemConstData.icoIndex, 10, 10+85*S_PaiDuiPageBuffer->tempd2->testdata.temperweima.itemConstData.icoIndex+75, 10+285, 91+index*110, 190);
					}
					else
					{
						//检测卡图标闪烁
						if((S_PaiDuiPageBuffer->count % 2) == 0)
							BasicPic(0x1590+index*0x10, 1, 138, 10+85*S_PaiDuiPageBuffer->tempd2->testdata.temperweima.itemConstData.icoIndex, 10, 10+85*S_PaiDuiPageBuffer->tempd2->testdata.temperweima.itemConstData.icoIndex+75, 10+285, 91+index*110, 190);
						else
							BasicPic(0x1590+index*0x10, 0, 138, 10+85*S_PaiDuiPageBuffer->tempd2->testdata.temperweima.itemConstData.icoIndex, 10, 10+85*S_PaiDuiPageBuffer->tempd2->testdata.temperweima.itemConstData.icoIndex+75, 10+285, 91+index*110, 190);
					}
				}
				else
				{
					//清除倒计时时间
					ClearText(0x1610+index*0x08);
					ClearText(0x1650+index*0x08);
					
					//显示卡凹槽
					S_PaiDuiPageBuffer->myico.ICO_ID = 37;
					S_PaiDuiPageBuffer->myico.X = 69+index*119;
					S_PaiDuiPageBuffer->myico.Y = 135;
					BasicUI(0x1590+index*0x10 ,0x1907 , 0, &(S_PaiDuiPageBuffer->myico) , sizeof(Basic_ICO));
					
					//时间进度条显示0
					WriteVarIcoNum(0x1510+index*16, 0);
				}
			}
			
			S_PaiDuiPageBuffer->count++;
			if(S_PaiDuiPageBuffer->count > 65535)
				S_PaiDuiPageBuffer->count = 0;
		}
		
		//界面空闲
		S_PaiDuiPageBuffer->pageisbusy = FALSE;
	}
}
Пример #11
0
/***************************************************************************************************
*FunctionName: activityInput
*Description: 界面输入
*Input: 
*Output: 
*Return: 
*Author: xsx
*Date: 2016年12月21日09:00:59
***************************************************************************************************/
static void activityInput(unsigned char *pbuf , unsigned short len)
{
	if(S_PaiDuiPageBuffer)
	{
		/*命令*/
		S_PaiDuiPageBuffer->lcdinput[0] = pbuf[4];
		S_PaiDuiPageBuffer->lcdinput[0] = (S_PaiDuiPageBuffer->lcdinput[0]<<8) + pbuf[5];
		
		/*返回*/
		if(S_PaiDuiPageBuffer->lcdinput[0] == 0x1500)
		{
			//测试中,不允许返回
			if(NULL != GetCurrentTestItem())
			{
				SendKeyCode(4);
				AddNumOfSongToList(21, 0);
			}
			//即将测试,不允许返回
			else if(GetMinWaitTime() < 40)
			{
				SendKeyCode(3);
				AddNumOfSongToList(20, 0);
			}
			else if(isSomePaiduiInOutTimeStatus())
			{
				SendKeyCode(3);
				AddNumOfSongToList(20, 0);
			}
			else
			{
				//页面正在刷新数据,忙
				while(S_PaiDuiPageBuffer->pageisbusy)
				{
					vTaskDelay(100 / portTICK_RATE_MS);
				}
				
				backToActivity(lunchActivityName);
			}
		}
		//继续测试
		else if(S_PaiDuiPageBuffer->lcdinput[0] == 0x1501)
		{
			S_PaiDuiPageBuffer->error = CreateANewTest(PaiDuiTestType);
			//创建成功
			if(Error_OK == S_PaiDuiPageBuffer->error)
			{
				startActivity(createSampleActivity, NULL);
			}
			//排队位置满,不允许
			else if(Error_PaiduiFull == S_PaiDuiPageBuffer->error)
			{
				SendKeyCode(2);
				AddNumOfSongToList(19, 0);
			}
			//创建失败
			else if(Error_Mem == S_PaiDuiPageBuffer->error)
			{
				SendKeyCode(1);
				AddNumOfSongToList(7, 0);
			}
			//有卡即将测试
			else if(Error_PaiDuiBusy == S_PaiDuiPageBuffer->error)
			{
				SendKeyCode(3);
				AddNumOfSongToList(20, 0);
			}
			//测试中禁止添加
			else if(Error_PaiduiTesting == S_PaiDuiPageBuffer->error)
			{
				SendKeyCode(4);
				AddNumOfSongToList(21, 0);
			}
			//排队模块失联
			else if(Error_PaiduiDisconnect == S_PaiDuiPageBuffer->error)
			{
				SendKeyCode(5);
				AddNumOfSongToList(58, 0);
			}
		}
	}
}
Пример #12
0
void Widget::onActivityButton()
{
    startActivity(m_activityEdit->text());
}
Пример #13
0
void Widget::onConnectButton()
{
    startActivity("android.settings.WIRELESS_SETTINGS");
}