示例#1
0
void Return_Task(void)
{
	switch(GetGrapCount())
	{
		case 1:
			SubMenuFlag();
			SubGrapCount();
			break;
		case 2:
			break;
		case 3:
			break;
		case 4:
			break;
		default:break;
	}
	SetCounter(1);
}
示例#2
0
void Sure_Task(void)
{
	switch(GetGrapCount())
	{
		case 1:
			AddGrapCount();
		  CLevel1_Sure();
			break;
		case 2:
			break;
		case 3:
			break;
		case 4:
			break;
		default:break;
	}
	SetCounter(1);
}
示例#3
0
void Down_Task(void)
{
	switch(GetGrapCount())//层次
	{
		case 1:
			AddCounter();
			if(GetCounter() > 4)
				SetCounter(1);
			GetMainGrap(GetCounter());
			break;
		case 2:
			Level2_Down();
			break;
		case 3:
			Level3_Down();
			break;
		case 4:
			Level4_Down();
			break;
		default:break;
	}

}
示例#4
0
void Up_Task(void)
{
	switch(GetGrapCount())//层次
	{
		case 1:
			if(GetCounter() > 1)
				SubCounter();	
			else
				SetCounter(4);				
			GetMainGrap(GetCounter());
			break;
		case 2:
			Level2_Up();
			break;
		case 3:
			Level3_Up();
			break;
		case 4:
			Level4_Up();
			break;
		default:break;
	}
	
}
示例#5
0
void CEnvHudCounter::InputSetCounter( inputdata_t &inputdata )
{
	SetCounter( inputdata.value.Float() );
	m_OnCounterSet.FireOutput( this, this );
}
示例#6
0
文件: UserInfo.cpp 项目: twd2/WDict
void UserInfo::IncCounter(const std::string &word, user_counter_t type, ptrdiff_t value)
{
    std::vector<ptrdiff_t> counters = GetCounters(word);
    SetCounter(word, type, counters[type] + value);
}
示例#7
0
int _WDOGBitTest(unsigned base,unsigned irqnum,int df)
{
  //non debug code is taken from pwdg-csm sample1
  int i;
  float Tmp;
  unsigned long int timeout = 4000000;
  int aborted;
  ADDRESS = base;//set global ADDRESS for ISR
  textcolor(LIGHTGRAY);
  IntroScreen();
  getch();
  puts("Press any key to stop test");
  inportb(base+4);   //clear any potentially pending interrupts
  //initirq(irqnum,setintflag);  //initialize the irq
  SetCounter();  //initialize counter
  inportb(base+4);   //clear any potentially pending interrupts
  outportb(base+7,0);  //enable counters
  if(df){ //loops until keypressed in debug mode
      delay(50);
      textcolor(LIGHTGRAY);
      cprintf("Bit Value           Status Register\n\r");
      for(i = 0;!kbhit(); i++){
         inportb(base+4);//clear pending interrupts so it won't lockup
         delay(100);
         CtrMode(base,1,2); //set counter 1 to mode 2
         CtrLoad(base,1,0x0050);  //load counter 1 with 20 hex
         printf("Updating counter 1, Loop number %3d\n",i);
         byte = inportb(base+4);
         printf("\nValue in status register: %x\n",byte);
          if ((byte & 1)==1)
             cprintf("1                   Watchdog OK       \n\r");
          else
             cprintf("0                   Watchdog timed out\n\r");
          if ((byte & 2)==2)
             cprintf("1                   Temperature OK         \n\r");
          else
             cprintf("0                   Temperature above 120 F\n\r");
          if ((byte & 4)==4)
             cprintf("1                   5VDC on input #1\n\r");
          else
             cprintf("0                   0VDC on input #1\n\r");
          if ((byte & 8)==8)
             cprintf("1                   5VDC on input #0\n\r");
          else
             cprintf("0                   0VDC on input #0\n\r");
          if ((byte & 16)==16)
             cprintf("1                   Fan good                     \n\r");
          else
             cprintf("0                   Fan speed out of range     \n\r");
          if ((byte & 32)==32)
             cprintf("1                   Voltage supplies OK       \n\r");
          else
             cprintf("0                   One of three supplies high\n\r");
          if ((byte & 64)==64)
             cprintf("1                   Voltage supplies OK       \n\r");
          else
             cprintf("0                   One of three supplies low\n\r");
          if ((byte & 128)==128)
             cprintf("1                   Interrupt   \n\r");
          else
             cprintf("0                   No interrupt\n\r");
         Tmp = (inportb(base+5) * (11.0 / 15.0)) + 7;//calculate temp
         printf("Temperature inside computer: %5.1f\n", Tmp);
         gotoxy(wherex(),wherey()-12);
      }
    getch();//get keypressed
  }
    if(!df){
      for(i = 0;i<=100; i++){
         delay(100);
         textcolor(LIGHTGRAY);
         CtrMode(base,1,2); //set counter 1 to mode 2
         CtrLoad(base,1,0x0020);  //load counter 1 with 50 hex
         printf("Updating counter 1, Loop number %3d\n",i);
         byte = inportb(base+4);
         printf("\nValue in status register: %x\n",byte);
          if ((byte & 1)==1)
             cprintf("1                   Watchdog OK       \n\r");
          else
             cprintf("0                   Watchdog timed out\n\r");
          if ((byte & 2)==2)
             cprintf("1                   Temperature OK         \n\r");
          else
             cprintf("0                   Temperature above 120 F\n\r");
          if ((byte & 4)==4)
             cprintf("1                   5VDC on input #1\n\r");
          else
             cprintf("0                   0VDC on input #1\n\r");
          if ((byte & 8)==8)
             cprintf("1                   5VDC on input #0\n\r");
          else
             cprintf("0                   0VDC on input #0\n\r");
          if ((byte & 16)==16)
             cprintf("1                   Fan good                     \n\r");
          else
             cprintf("0                   Fan speed out of range     \n\r");
          if ((byte & 32)==32)
             cprintf("1                   Voltage supplies OK       \n\r");
          else
             cprintf("0                   One of three supplies high\n\r");
          if ((byte & 64)==64)
             cprintf("1                   Voltage supplies OK       \n\r");
          else
             cprintf("0                   One of three supplies low\n\r");
          if ((byte & 128)==128)
             cprintf("1                   Interrupt   \n\r");
          else
             cprintf("0                   No interrupt\n\r");
         Tmp = (inportb(base+5) * (11.0 / 15.0)) + 7;//calculate temp
         printf("Temperature inside computer: %5.1f\n", Tmp);
         gotoxy(wherex(),wherey()-12);
      }
    }
  gotoxy(wherex(),wherey()+11);
  printf("\nWaiting for timeout\n");
  while((byte=(inportb(base+4) & 1)) == 1);
  if((byte & 1)==1)
    puts("Watchdog did not time out");
  else
    puts("Watchdog timed out");
  byte=inportb(base+4);//read register
  printf("\nValue in status register: %x\n",byte);//print inportb(base+4) from ISR
  delay(200);
  if (df) {puts("Press any key to turn off reset and exit");getch();}
  puts("Exiting test!                  ");
  inportb(base+7);  //disable counters
  delay(100);

  CtrMode(ADDRESS, 2, 0); // set counter 2 to mode 0
  outportb(base + 5,0); //turn off buzzer
  delay(100);
  outportb(base + 6,0);
  //restoreirq(irqnum);
  return 0;
}
示例#8
0
OP_STATUS Counter::AddCounterValues(OpString& counter_str, HTML_Element* element, const uni_char* delimiter, unsigned int delimiter_length, short style_type, BOOL add_only)
{
	CounterElement* counter_element;
	if (add_only)
	{
		counter_element = (CounterElement*) list.Last();
		if (counter_element && (counter_element->GetElement() != element || counter_element->GetType() != COUNTER_USE))
			counter_element = NULL;
	}
	else
	{
		BOOL found = FALSE;

		for (counter_element = (CounterElement*) list.First(); counter_element; counter_element = counter_element->Suc())
			if (counter_element->GetElement() == element)
			{
				if (counter_element->GetType() == COUNTER_USE)
					break;

				found = TRUE;
			}
			else
				if (found)
				{
					counter_element = NULL;
					break;
				}
	}

	if (!counter_element)
	{
		counter_element = SetCounter(element, COUNTER_USE, 0, add_only);

		if (!counter_element)
			return OpStatus::ERR_NO_MEMORY;

		((CounterElement*)list.First())->Recalculate(NULL, NULL, 0);
	}

	/* Buffer for sending strings into ContentGenerator::AddString(). */
	uni_char tmp_buf[TMPSTRING_SIZE]; /* ARRAY OK 2009-05-11 davve */

	if (delimiter)
	{
		/* If delimiter is set (even if it empty), we should add the
		   complete chain of counters. */

		int prev_value = 0;
		HTML_Element* prev_counter_root = NULL;
		for (CounterElement* c_element = (CounterElement*) list.First(); c_element; c_element = c_element->Suc())
		{
			if (prev_counter_root && c_element->GetType() == COUNTER_RESET && !c_element->GetElement()->IsAncestorOf(element))
			{
				HTML_Element* this_counter_root = c_element->GetElement();

				for (c_element = c_element->Suc(); c_element; c_element = c_element->Suc())
					if (!this_counter_root->IsAncestorOf(c_element->GetElement()))
						break;

				if (!c_element)
					break;
			}

			if (c_element->GetType() == COUNTER_RESET)
			{
				if (prev_counter_root && (!prev_counter_root->Parent() || prev_counter_root->Parent()->IsAncestorOf(element)))
				{
					MakeListNumberStr(prev_value, style_type, NULL, tmp_buf, TMPSTRING_SIZE-1); //FIXME rtl?
					RETURN_IF_ERROR(counter_str.Append(tmp_buf));

					// add delimiter
					if (delimiter_length)
						RETURN_IF_ERROR(counter_str.Append(delimiter, delimiter_length));
				}

				prev_counter_root = c_element->GetElement();

				if (prev_counter_root->GetIsPseudoElement())
					prev_counter_root = prev_counter_root->Parent();
			}
			else
				if (!prev_counter_root)
				{
					prev_counter_root = c_element->GetElement();

					if (prev_counter_root->GetIsPseudoElement())
						prev_counter_root = prev_counter_root->Parent();
				}

			if (c_element->GetType() == COUNTER_INCREMENT)
				prev_value += c_element->GetValue();
			else
				prev_value = c_element->GetValue();
		}
	}

	MakeListNumberStr(counter_element->GetValue(), style_type, NULL, tmp_buf, TMPSTRING_SIZE-1); //FIXME rtl?

	return counter_str.Append(tmp_buf);
}