Étape 5: Logiciels (applications Android par inventeur apps, Firmware de MPLAB)
#include « fileheader.h »
const char main_page [] = "C %0" ;
const char [time_page] = "T %1".
débogage de char [7] ;
Int32 http_get_page(char *file_str)
{
Int32 file_loc = 0 ;
int8 i = 0 ;
int8 jours = 0 ;
int8 mois = 0 ;
int8 année = 0 ;
int8 heure = 0 ;
int8 min = 0 ;
int8 second = 0 ;
int8 dow = 0 ;
public static char gradateur [] = "/ D" ;
public static char fan [] = "/ F" ;
public static char powersocket [] = "/ S" ;
public static char Alarm [] = "/ A" ;
public static char magneticlock [] = "/ L » ;
public static char éligibilitéÉtat [] = "/ C" ;
public static char rtc_io [] = "/ T" ;
debug [0] = file_str [0] ;
debug [1] = file_str [1] ;
debug [2] = file_str [2] ;
debug [3] = file_str [3] ;
debug [4] = file_str [4] ;
gradateur
Si (stricmp(file_str[1],dimmer[1])==0)
{
J’ai =(file_str[2] & 0b11001111) * 100 + (file_str [3] et 0b11001111) * 10 + (file_str [4] & 0b11001111) ;
bulb_brightness(i) ;
file_loc=label_address(main_page) ;
}
contrôle d’alarme
Si (stricmp(file_str,alarmsystem)==0)
{
toggle_alarm_state() ;
file_loc=label_address(main_page) ;
}
rtc_io
Si (stricmp(file_str[1],rtc_io[1])==0)
{
if(file_str[2]=='s') //set temps
{
jours = (file_str [3] & 0b11001111) * 10 + (file_str [4] & 0b11001111) ;
mois = (file_str [5] & 0b11001111) * 10 + (file_str [6] & 0b11001111) ;
an = (file_str [7] & 0b11001111) * 10 + (file_str [8] & 0b11001111) ;
Dow = (file_str [9] & 0b11001111) ;
heure = (file_str [10] & 0b11001111) * 10 + (file_str [11] & 0b11001111) ; min = (file_str [12] & 0b11001111) * 10 + (file_str [13] & 0b11001111) ;
deuxième = (file_str [14] & 0b11001111) * 10 + (file_str [15] et 0b11001111) ; ds1307_set_date_time(Days,month,Year,Dow,Hour,min,second) ;
file_loc=label_address(time_page) ;
}
if(file_str[2]=='g') //get temps
{file_loc=label_address(time_page);}
if(file_str[2]=='r') //configuration CCF io
set_rtc_io (marche/arrêt, qui e/s, hr on, min allumée, hr sur off, min OFF)
{set_rtc_io(file_str[3] & 0b11001111, file_str[4] & 0b11001111, (file_str[5] & 0b11001111) * 10 + (file_str [6] et 0b11001111), (file_str [7] & 0b11001111) * 10 + (file_str [8] et 0b11001111), (file_str [9] & 0b11001111) * 10 + (file_str [10] et 0b11001111), (file_str [11] & 0b11001111) * 10 + (file_str [12] & 0b11001111)); file_loc=label_address(time_page);} }
pour les fans si (stricmp (file_str [1], fan [1]) == 0) {if(stricmp(file_str[2],'1')==0) {fan_speed1();} if(stricmp(file_str[2],'2')==0) {fan_speed2();} if(stricmp(file_str[2],'3')==0) {fan_speed3();} if(stricmp(file_str[2],'o')==0) {fan_off();} if(stricmp(file_str[2],'r')==0) {fan_rotate_toggle();} file_loc=label_address(main_page);}
pour serrure magnétique si (stricmp(file_str,magneticlock)==0) {toggle_magnetic_lock_state() ; file_loc=label_address(main_page);}
pour prise de courant si (stricmp (file_str [1], powersocket [1]) == 0) {if(stricmp(file_str[2],'1')==0) {toggle_power_socket1_state();} if(stricmp(file_str[2],'2')==0) {toggle_power_socket2_state();} if(stricmp(file_str[2],'3')==0) {toggle_power_socket3_state();} file_loc=label_address(main_page);}
pour état vérifier si (stricmp (file_str, éligibilitéÉtat) == 0) {file_loc=label_address(main_page);}
Return(file_loc) ; }
int8 http_format_char (fichier d’int32, id de char, char * str, int8 max_ret) {char new_str [50]; int8 len = 0 ;
* str = 0 ;
{Switch(ID)}
case « 0 »: sprintf(new_str,"%2d%2d%2d%3d%d%d%d%d%d%d%d%d%d%d%d%s",hr,min,get_temperature(), get_bulb_brightness(), input_state(speed1), input_state(speed2), input_state(speed3), input_state(rotate), input_state(magnetic_lock_signal),input_state(power_socket_signal1),input_state(power_socket_signal2),input_state(power_socket_signal3),input_state(voice_sensor_signal) , input_state(alarm_signal),T,debug) ; Len=strlen(new_str) ; rupture ;
case '1': sprintf(new_str,"%2d%2d%1d%1d%1d%2d%2d%2d%2d%2d%2d%2d%2d%2d%2d%2d%2d",hr,min,rtc.io0,rtc.io1,rtc.io2,hr_on_io0,min_on_io0,hr_off_io0,min_off_io0,hr_on_io1,min_on_io1,hr_off_io1,min_off_io1,hr_on_io2,min_on_io2,hr_off_io2,min_off_io2); Len=strlen(new_str) ; rupture ; } Si (len) {si (len > max_ret) {len = max_ret;} memcpy(str,new_str,len);}
Return(Len) ; }
void http_exec_cgi (fichier d’int32, char * clé, char * val) {;}
void main (void) {}
delay_ms(1000) ;
rtc_io_init() ;
power_socket_init() ;
bulb_dimmer_init() ;
voice_control_alarm_system_init() ;
magnetic_lock_init() ;
temperature_sensor_init() ;
fan_init() ;
MACAddrInit() ;
IPAddrInit() ;
StackInit() ;
delay_ms(10) ;
while (true)
{
StackTask() ;
}
}