@@ -657,7 +657,7 @@ void init(void)
657657 xbee_init (& paint_info_line ,NULL ,0 ,SC_mask );
658658 }else
659659 {
660- xbee_init (& paint_info_line ,NULL ,0 ,SC_MASK_DEFAULT );
660+ xbee_init (& paint_info_line ,NULL ,0 ,SC_MASK_DEFAULT );
661661 }
662662
663663
@@ -1227,25 +1227,39 @@ void execute_server_CMDS(uint8_t reply_id){
12271227 case SET_SC_XBEE_MASK :;
12281228 uint16_t SC_mask = (frameBuffer [reply_id ].data [0 ]<<8 ) + frameBuffer [reply_id ].data [1 ];
12291229
1230+ if (!(SC_mask & 0xE001 )){
1231+ // write new sc mask to eeprom
1232+ eeprom_update_word (& eeSC_mask , SC_mask );
1233+ eeprom_update_byte (& eeSC_already_sent_from_server ,SC_already_received_Pattern );
1234+
1235+ //refresh xbee parameters
1236+ xbee_init (& paint_info_line ,NULL ,0 ,SC_mask );
1237+ xbee_Set_Scan_Channels (xbee .ScanChannels );
1238+ xbee_WR ();
1239+
1240+ //Send Status Ack
1241+ sendbuffer [0 ] = 0 ;
1242+ xbee_send_message (SET_SC_XBEE_MASK ,sendbuffer ,1 );
1243+ }else {
1244+ //Send Status Ack
1245+ sendbuffer [0 ] = 1 ;
1246+ xbee_send_message (SET_SC_XBEE_MASK ,sendbuffer ,1 );
1247+ }
1248+ break ;
12301249
1231- // write new sc mask to eeprom
1232- eeprom_update_word (& eeSC_mask , SC_mask );
1233- eeprom_update_byte (& eeSC_already_sent_from_server ,SC_already_received_Pattern );
1234-
1235- //refresh xbee parameters
1236-
1237- xbee_init (& paint_info_line ,NULL ,0 ,SC_mask );
1238- xbee_Set_Scan_Channels (xbee .ScanChannels );
1239- xbee_WR ();
1240-
1241- //Send Status Ack
1242- sendbuffer [0 ] = 0 ;
1243- xbee_send_message (SET_SC_XBEE_MASK ,sendbuffer ,1 );
1244-
1250+ case GET_SC_XBEE_MASK :
1251+ ;
1252+
1253+ sendbuffer [0 ] = xbee .ScanChannels >> 8 ;
1254+ sendbuffer [1 ] = xbee .ScanChannels ;
1255+
1256+
1257+ xbee_send_message (GET_SC_XBEE_MASK , sendbuffer ,2 );
1258+
1259+ break ;
12451260
12461261
12471262
1248- break ;
12491263
12501264
12511265 #ifdef USE_LAN
0 commit comments