Example #1
0
int LegsDetector::getFarthest()
{
   int personID = -1;
   double maxDist = -INFINITY;
   int maxId = getHowMany();
   for (int id = 0; id < maxId; id++)
      if (getDistance(id) > maxDist)
         maxDist = getDistance(personID = id);
   return personID;
}
Example #2
0
int LegsDetector::getClosest()
{
   int personID = -1;
   double minDist = INFINITY;
   int maxId = getHowMany();
   for (int id = 0; id < maxId; id++)
      if (getDistance(id) < minDist)
         minDist = getDistance(personID = id);
   return personID;
}
Example #3
0
/*
 * dekodowanie make code klawisza -> HEX ASCII
 */
char decodeASCII (int code)
{

	if (ignoreNext == 1 && code != KEYBD_SHIFT)
	{
		ignoreNext = 0;
		return '0';
	} else if (ignoreNext == 1 && code == KEYBD_SHIFT)
	{
		uppercaseNext = 0;
		ignoreNext = 0;
		return '0';
	}

	/*
	 * Obsluga klawisza LCTRL -
	 * powoduje skasowanie zawartosci pamieci EEPROM
	 */

	if (code == KEYBD_LCTRL)
	{
		resetEEPROM();
		getHowMany();
		return '0';
	}

	if (code == KEYBD_BREAK_CODE)
	{
		ignoreNext = 1;
		return '0';
	}

	setBufferReady();

	switch (code)
	{
		case KEYBD_SHIFT: uppercaseNext = 1; break;
		case KEYBD_CAPSLOCK: uppercaseNext = (uppercaseNext == 1 ? 0 : 1); break;
		case KEYBD_A: if (uppercaseNext == 1) { return 'A';} return 'a'; // mozna tez skorzystac z tego, ze A = (int)a + 32
		case KEYBD_B: if (uppercaseNext == 1) { return 'B';} return 'b';
		case KEYBD_C: if (uppercaseNext == 1) { return 'C';} return 'c';
		case KEYBD_D: if (uppercaseNext == 1) { return 'D';} return 'd';
		case KEYBD_E: if (uppercaseNext == 1) { return 'E';} return 'e';
		case KEYBD_F: if (uppercaseNext == 1) { return 'F';} return 'f';
		case KEYBD_G: if (uppercaseNext == 1) { return 'G';} return 'g';
		case KEYBD_H: if (uppercaseNext == 1) { return 'H';} return 'h';
		case KEYBD_I: if (uppercaseNext == 1) { return 'I';} return 'i';
		case KEYBD_J: if (uppercaseNext == 1) { return 'J';} return 'j';
		case KEYBD_K: if (uppercaseNext == 1) { return 'K';} return 'k';
		case KEYBD_L: if (uppercaseNext == 1) { return 'L';} return 'l';
		case KEYBD_M: if (uppercaseNext == 1) { return 'M';} return 'm';
		case KEYBD_N: if (uppercaseNext == 1) { return 'N';} return 'n';
		case KEYBD_O: if (uppercaseNext == 1) { return 'O';} return 'o';
		case KEYBD_P: if (uppercaseNext == 1) { return 'P';} return 'p';
		case KEYBD_Q: if (uppercaseNext == 1) { return 'Q';} return 'q';
		case KEYBD_R: if (uppercaseNext == 1) { return 'R';} return 'r';
		case KEYBD_S: if (uppercaseNext == 1) { return 'S';} return 's';
		case KEYBD_T: if (uppercaseNext == 1) { return 'T';} return 't';
		case KEYBD_U: if (uppercaseNext == 1) { return 'U';} return 'u';
		case KEYBD_V: if (uppercaseNext == 1) { return 'V';} return 'v';
		case KEYBD_W: if (uppercaseNext == 1) { return 'W';} return 'w';
		case KEYBD_X: if (uppercaseNext == 1) { return 'X';} return 'x';
		case KEYBD_Y: if (uppercaseNext == 1) { return 'Y';} return 'y';
		case KEYBD_Z: if (uppercaseNext == 1) { return 'Z';} return 'z';
		case KEYBD_SPACE: return ' ';
		default: return '0';
	}
}
Example #4
0
int main(void)
{

	SystemInit();
	GPIOInit();
	FLASH_Unlock();
	EE_Init();

  USBD_Init(&USB_OTG_dev,
#ifdef USE_USB_OTG_HS
  USB_OTG_HS_CORE_ID,
#else
  USB_OTG_FS_CORE_ID,
#endif
  &USR_desc,
  &USBD_HID_cb,
  &USR_cb);

	bitCount = 0;
	currentValue = 0;
	set = 0;
	ignoreNext = 0;
	uppercaseNext = 0;
	shiftPressed = 0;
	buttonPressed = 0;
	getHowMany();

	int i = 0;
	resetBuffer();

	for(;;)
	{
		/*
		 * Po wcisnieciu przycisku nastepuje wyslanie raportu USB
		 * zawierajacego rejestr przycisnietych klaiwszy
		 */
		if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0))
		{
			if (!buttonPressed)
			{
				buttonPressed = 1;
				for (i = 0; i < 64; i++)
				{
					EE_ReadVariable(VirtAddVarTab[i], &InBuffer[i]);
				}

				USBD_HID_SendReport (&USB_OTG_dev, InBuffer, 64);

			}
		} else if (buttonPressed)
		{
			buttonPressed = 0;
		}

		if (checkBufferReady())
		{
			/*
			 * Jezeli zapisano 64 wcisniecia klawiszy,
			 * nalezy oproznic EEPROM przed kontynuacja zapisu
			 *
			 */
			if(EEPROMFull())
			{
				GPIO_ToggleBits(GPIOD, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);
				continue;
			}

			unsetBufferReady();
			startTimer();

			EE_WriteVariable(VirtAddVarTab[howMany=howMany+0x01], currentChar);
			EE_WriteVariable(VirtAddVarTab[63], howMany);

			}

		}
}