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); }
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"); } }
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); }
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; }