/* * Hot Beverage Companion – data types * * Copyright (C) 2018 Gediminas Jakutis * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; version 2.1 * of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #ifndef CONFIGURATION_DATA_INCLUDED #define CONFIGURATION_DATA_INCLUDED /* the union should help prevent the compiler from * reordering fields as it sees fit when optimizing. */ #define PADDING_START {0xff, 0xee, 0xdd, 0xff} #define PADDING_END {0xff, 0xdd, 0xcc, 0xff} struct configuration { union { struct { unsigned char padding_start[4]; char ssid[32]; char password[32]; int calibration[4]; unsigned char padding_end[4]; }; unsigned char __full[sizeof(int) * 4 + 32 * 2 + 4 * 2]; }; }; #endif /* CONFIGURATION_DATA_INCLUDED */