Ejemplo n.º 1
0
void mpxlcol_load (FORM* form) 
{	
	//Wenn noch kein Colorset gespeichert wurde, wird das Default Colorset
	//Abgespeichert. Sonst wird das COlorset aus dem Speicher geladen.
 	if((BFS_LoadFile(BFS_ID_RGB_Colors, sizeof(struct Colorset), (unsigned char*) &colors))	
 		!= sizeof(struct Colorset)) 
 	{
 		colors = default_Colorset;
 		BFS_SaveFile(BFS_ID_RGB_Colors, sizeof(struct Colorset), (unsigned char*) &colors);
 		msgbox(50,BC_OKOnly | BC_DefaultButton1,"Defaults geladen");
 	}

	pointer = 0;
	//Controls mit den Werten im Speicher initialisieren.
	memcpy(((TXTBOX*)form->controls[3])->text,colors.Name[pointer],20);
	((TRACKBAR*)form->controls[4])->actval = colors.color[pointer].Red;
	((TRACKBAR*)form->controls[5])->actval = colors.color[pointer].Green;
	((TRACKBAR*)form->controls[6])->actval = colors.color[pointer].Blue;
	//und zeichnen
	control_draw(form->controls[3], 0);
	control_draw(form->controls[4], 0);
	control_draw(form->controls[5], 0);
	control_draw(form->controls[6], 0);	

	//setzen der ersten Farbe im Speicher
	cc1100_init();
	setRGB(colors.color[0]);
	//Einschalten des LED-Stacks
	led_state(mpxl_state_on);
}
Ejemplo n.º 2
0
void mpxlcol_bt_save_click(FORM* form, CONTROL* control)
{
	if (!(BFS_SaveFile(BFS_ID_RGB_Colors, sizeof(struct Colorset), (unsigned char*)&colors)))
	{
		msgbox(50,BC_OKOnly | BC_DefaultButton1,"Speichern fehlgeschlagen");
	}
	
}
Ejemplo n.º 3
0
void RAW_editset(FORM* form, CONTROL* control) {

	struct RAWset_ RAWset;
	const BUTTON button1	= {BC_Button,0,15,120,15,SMALLFONT,0,"Anlernen/Testen",RAW_learnset};
	const BUTTON button2	= {BC_Button,0,35,120,15,SMALLFONT,0,"Taste loeschen",RAW_keyerase};
	const BUTTON button3	= {BC_Button,0,55,120,15,SMALLFONT,0,"Alle Tasten loeschen",RAW_allkeyserase};
	const LABEL label1		= {BC_Labelnotab,0,80,60,10,BOLDFONT,0,"Bezeichnung",0};
	TXTBOX txtbox1			= {BC_Txtbox,0,90,120,10,SMALLFONT,20,0,(char*)RAWset.name,0};
	
	CONTROL* controls[5] = {	(CONTROL*)&button1,
								(CONTROL*)&button2,
								(CONTROL*)&button3,
								(CONTROL*)&label1,
								(CONTROL*)&txtbox1};
	
	FORM form2  = {"RAW Set bearbeiten",0,0,0,0,controls,0,5};	
	unsigned long x;
	
	x = (unsigned long)BFS_LoadFileAddr(BFS_ID_RAWslot0 + ((LABEL*)control)->tag);
	
	draw_hexW(0,100,x,3,DRAW_PUT);
	
	if(x)
		memcpy(&RAWset,(void *)x,sizeof(struct RAWset_));
	else
		RAWset.id[0] = 0xff;
		
	x=memcmp(&RAWset,"RC01",4);
	if(x) {
		for(x=0;x<RAWnamelen;x++)
			RAWset.name[x]=0xff;
		for(x=0;x<38;x++) {
			clear_cmd(&RAWset.RAWcmd[x]);
		}
		BFS_SaveFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset);
	}
	
	if(RAWset.name[0]==0xff)
		memcpy(&RAWset.name[0],(char*)string_unknown,len_string_unknown);
	
	form2.tag =(unsigned long)&RAWset;
	
	form_exec(&form2);
	
	if(!memcmp(&RAWset.name[0],string_unknown,len_string_unknown))
		for(x=0;x<len_string_unknown;x++)
			RAWset.name[x] = 0xff;
	
	if(BFS_CmpFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset) == 0) {
		x=msgbox(50,BC_YesNo | BC_DefaultButton1,"Sollen die Aenderungen\ngespeichert werden?\n");
		if(x == BC_Yes) {
			memcpy(&RAWset.id[0],"RC01",4);
			BFS_SaveFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset);
			if(BFS_CmpFile(BFS_ID_RAWslot0 + ((LABEL*)control)->tag, sizeof(struct RAWset_), (unsigned char*) &RAWset) == 0) {
				msgbox(50,BC_OKOnly | BC_DefaultButton1,"Fehler\n");
			}
		}
	}
	
	form_draw(form);
}
Ejemplo n.º 4
0
int main(void)
{
	sysInfo = 0;
	
	SCS |= 0x01;
	FIODIR0 |= ((1<<21) | (1<<4) | (1<<11) | (1<<6) | (1<<23) | (1<<19) | (1<<17));
	FIODIR0 |= (1<<12);
	FIOSET0 |= (1<<12);
	xx = 0x00;

	setSpeed(SPEED_30);

	lcd_init(0);
	serial_init();

	startTimerIRQ();
	startADC();

	initKeys();

	initSound();
	startSoundIRQ();

	initIR();
	startIrIRQ();

    RF_init();
    startcc1100IRQ();
	enableWOR();
	
	initRTC();
	startRtcIRQ();
	
	enableIRQ();

	testmenu_init();
	init_menu();
	
	initBacklight();

	oldkeys[0] = keys[0];
	oldkeys[1] = keys[0];

	key_state = KEY_IDLE;

	set_font(BOLDFONT);
	
	BFS_Mount();
	load_RC_setting();
	load_RF_setting();
	load_setting();
	
	{
		struct RAWset_ RAWset;
        unsigned char x;
        unsigned long RAWcmdbase;
        
        RAWcmdbase = FLASH1_BASE +(secaddr[0]<<1);
        x=memcmp((void*)RAWcmdbase,"RC01",4);
		
        if(!x) {
               
				memcpy(&RAWset,(void *)RAWcmdbase,sizeof(struct RAWset_));
				RAWset.name[7] = 0;
				BFS_SaveFile(BFS_ID_RAWslot0, sizeof(struct RAWset_), (unsigned char*) &RAWset);
				eraseSector(1,0);
        }
	}
	
	if (EncIsValid(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set)) {
		setEncoder(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set);
	}	
	
	drawMainscreen();
	ask_for_time(0);
	
						
/*
	playSound((unsigned char*)sound1_data, sound1_len);
	waitSound();
	playSound((unsigned char*)sound2_data, sound2_len);
*/

	while (1)
	{
		if(keys[0] != oldkeys[0] || keys[1] != oldkeys[1])
		{
			oldkeys[0] = keys[0];
			oldkeys[1] = keys[1];
			sysInfo |= 0x40;
		}

		switch(key_state)
		{
			case KEY_IDLE:
				if(sysInfo & 0x40)
				{
					sysInfo &= 0xBF;
					if(KEY_Betty)
					{
						setBacklight(BL_AUTO);
						menu_exec(&mainMenu);
						if (EncIsValid(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set)) {
							setEncoder(irDevTab.device[irDevTab.active].encoder, irDevTab.device[irDevTab.active].set);
						}
						drawMainscreen();
					}
					else if(KEY_2)
					{
						//setSpeed(SPEED_30);
					}
					else if(KEY_3)
					{
						//setSpeed(SPEED_60);
					}
					else  if(KEY_A || KEY_B || KEY_C || KEY_D)
					{
						unsigned char x;
						//playSound((unsigned char*)sound3_data, sound3_len);
						x=0;
						if (KEY_B) x=1;
						if (KEY_C) x=2;
						if (KEY_D) x=3;
						
						if (EncIsValid(irDevTab.device[x].encoder, irDevTab.device[x].set)) {
							setBacklight(BL_AUTO);
							irDevTab.active = x;
							setEncoder(irDevTab.device[x].encoder, irDevTab.device[x].set);
							drawMainscreen();
						}	
					}
/*					else if(KEY_B)
					{
					
					}
					else if(KEY_C)
					{	
//						playSound((unsigned char*)sound1_data, sound1_len);
					}
					else if(KEY_D)
					{	
//						playSound((unsigned char*)sound2_data, sound2_len);
					}*/
					if((keys[0] != 0) || (keys[1] != 0))
						key_state = KEY_PRESS;
				}
				break;
			case KEY_PRESS:
				irSend(getCode());
				key_state = KEY_HOLD;
//				autorepeat = 0;
				break;
			case KEY_HOLD:
//				if(autorepeat >= AUTO_TIMEOUT)
					irRepeat();

				if(keys[0] == 0 && keys[1] == 0)
					key_state = KEY_RELEASE;

				break;
			case KEY_RELEASE:
				irStop();
				key_state = KEY_IDLE;
				break;
		}

		if(serial_tstc() > 0)
		{
			i = serial_getc();
			if(i=='.')
			{
				serial_puts("HELO");
			}
			else if(i=='0')
			{
				setBacklight(0x00);	// pwm value
			}
			else if(i=='1')
			{
				setBacklight(0x1F);	// pwm value
			}
			else if(i=='2')
			{
				setBacklight(0x3F);	// pwm value
			}
			else
				serial_putc(i);
		}
		
		if ((bl_val == 0) && (key_state == KEY_IDLE) && !((FIOPIN0 & (1<<30)) == 0) && (((RFstatus & (WORrxon | RXenabled)) == 0))) {
			EXTINT = 0x08;
			PCON = 0x02;
			PLLFEED = 0xAA;
			PLLFEED = 0x55;
		}
		
		if (timeInfo & timechanged) {
			printTime(86,152,(struct time_ *)&time);
			printDate(0,152,(struct date_ *)&date,0);
			
			timeInfo &= ~timechanged;
		}
		
	}
	return 0;
}