-
-
Notifications
You must be signed in to change notification settings - Fork 533
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* added tilt * added extsensors app * added icon * Added EnvironmentData to ExtSensor app and message.hpp * Added gotenv command
- Loading branch information
Showing
8 changed files
with
329 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
/* | ||
* Copyright (C) 2023 Bernd Herzog | ||
* | ||
* This file is part of PortaPack. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation; either version 2, or (at your option) | ||
* any later version. | ||
* | ||
* 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 General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; see the file COPYING. If not, write to | ||
* the Free Software Foundation, Inc., 51 Franklin Street, | ||
* Boston, MA 02110-1301, USA. | ||
*/ | ||
|
||
#include "ui.hpp" | ||
#include "ui_extsensors.hpp" | ||
#include "ui_navigation.hpp" | ||
#include "external_app.hpp" | ||
|
||
namespace ui::external_app::extsensors { | ||
void initialize_app(ui::NavigationView& nav) { | ||
nav.push<ExtSensorsView>(); | ||
} | ||
} // namespace ui::external_app::extsensors | ||
|
||
extern "C" { | ||
|
||
__attribute__((section(".external_app.app_extsensors.application_information"), used)) application_information_t _application_information_extsensors = { | ||
/*.memory_location = */ (uint8_t*)0x00000000, | ||
/*.externalAppEntry = */ ui::external_app::extsensors::initialize_app, | ||
/*.header_version = */ CURRENT_HEADER_VERSION, | ||
/*.app_version = */ VERSION_MD5, | ||
|
||
/*.app_name = */ "ExtSensor", | ||
/*.bitmap_data = */ { | ||
0x00, | ||
0x00, | ||
0x00, | ||
0x00, | ||
0x04, | ||
0x20, | ||
0x12, | ||
0x48, | ||
0x8A, | ||
0x51, | ||
0xCA, | ||
0x53, | ||
0xCA, | ||
0x53, | ||
0x8A, | ||
0x51, | ||
0x12, | ||
0x48, | ||
0x84, | ||
0x21, | ||
0xC0, | ||
0x03, | ||
0x40, | ||
0x02, | ||
0x60, | ||
0x06, | ||
0x20, | ||
0x04, | ||
0x30, | ||
0x0C, | ||
0xF0, | ||
0x0F, | ||
}, | ||
/*.icon_color = */ ui::Color::orange().v, | ||
/*.menu_location = */ app_location_t::DEBUG, | ||
|
||
/*.m4_app_tag = portapack::spi_flash::image_tag_none */ {0, 0, 0, 0}, | ||
/*.m4_app_offset = */ 0x00000000, // will be filled at compile time | ||
}; | ||
} |
86 changes: 86 additions & 0 deletions
86
firmware/application/external/extsensors/ui_extsensors.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
/* | ||
* This file is part of PortaPack. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation; either version 2, or (at your option) | ||
* any later version. | ||
* | ||
* 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 General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; see the file COPYING. If not, write to | ||
* the Free Software Foundation, Inc., 51 Franklin Street, | ||
* Boston, MA 02110-1301, USA. | ||
*/ | ||
|
||
#include "ui_extsensors.hpp" | ||
|
||
#include "rtc_time.hpp" | ||
#include "string_format.hpp" | ||
#include "portapack_persistent_memory.hpp" | ||
|
||
using namespace portapack; | ||
using namespace ui; | ||
|
||
namespace ui::external_app::extsensors { | ||
|
||
void ExtSensorsView::focus() { | ||
text_info.focus(); | ||
} | ||
|
||
ExtSensorsView::ExtSensorsView(NavigationView& nav) | ||
: nav_{nav} { | ||
add_children({&labels, | ||
&text_info, | ||
&text_gps, | ||
&text_orientation, | ||
&text_envl1, | ||
&text_envl2}); | ||
} | ||
|
||
ExtSensorsView::~ExtSensorsView() { | ||
} | ||
|
||
void ExtSensorsView::on_any() { | ||
if (has_data == false) { | ||
// update text | ||
text_info.set("Found ext module."); // todo do an ext module check for type | ||
} | ||
has_data = true; | ||
} | ||
|
||
void ExtSensorsView::on_gps(const GPSPosDataMessage* msg) { | ||
on_any(); | ||
std::string tmp = to_string_decimal(msg->lat, 5); | ||
tmp += "; "; | ||
tmp += to_string_decimal(msg->lon, 5); | ||
text_gps.set(tmp); | ||
} | ||
|
||
void ExtSensorsView::on_orientation(const OrientationDataMessage* msg) { | ||
on_any(); | ||
std::string tmp = to_string_dec_uint(msg->angle); | ||
tmp += (char)176; // ° | ||
if (msg->tilt < 400) { | ||
tmp += "; T: " + to_string_dec_int(msg->tilt); | ||
} | ||
text_orientation.set(tmp); | ||
} | ||
|
||
void ExtSensorsView::on_environment(const EnvironmentDataMessage* msg) { | ||
on_any(); | ||
std::string tmp = "T: " + to_string_decimal(msg->temperature, 2); // temperature | ||
tmp += (char)176; // ° | ||
tmp += "C"; | ||
tmp += "; H: " + to_string_decimal(msg->humidity, 1) + "%"; // humidity | ||
text_envl1.set(tmp); | ||
tmp = "P: " + to_string_decimal(msg->pressure, 1) + " hPa; L:"; // pressure | ||
tmp += to_string_dec_int(msg->light) + " LUX"; // light | ||
text_envl2.set(tmp); | ||
} | ||
|
||
} // namespace ui::external_app::extsensors |
96 changes: 96 additions & 0 deletions
96
firmware/application/external/extsensors/ui_extsensors.hpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
/* | ||
* Copyright (C) 2014 Jared Boone, ShareBrained Technology, Inc. | ||
* Copyright (C) 2017 Furrtek | ||
* | ||
* This file is part of PortaPack. | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation; either version 2, or (at your option) | ||
* any later version. | ||
* | ||
* 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 General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program; see the file COPYING. If not, write to | ||
* the Free Software Foundation, Inc., 51 Franklin Street, | ||
* Boston, MA 02110-1301, USA. | ||
*/ | ||
|
||
// Code from https://github.com/Flipper-XFW/Xtreme-Apps/tree/04c3a60093e2c2378e79498b4505aa8072980a42/ble_spam/protocols | ||
// Thanks for the work of the original creators! | ||
// Saying thanks in the main view! | ||
|
||
#ifndef __UI_EXTSENSORS_H__ | ||
#define __UI_EXTSENSORS_H__ | ||
|
||
#include "ui.hpp" | ||
#include "ui_language.hpp" | ||
#include "ui_navigation.hpp" | ||
#include "ui_record_view.hpp" | ||
#include "app_settings.hpp" | ||
#include "utility.hpp" | ||
|
||
using namespace ui; | ||
|
||
namespace ui::external_app::extsensors { | ||
|
||
class ExtSensorsView : public View { | ||
public: | ||
ExtSensorsView(NavigationView& nav); | ||
~ExtSensorsView(); | ||
|
||
void focus() override; | ||
|
||
std::string title() const override { | ||
return "ExtSensor"; | ||
}; | ||
|
||
private: | ||
NavigationView& nav_; | ||
|
||
bool has_data = false; | ||
|
||
Labels labels{ | ||
{{0 * 8, 3 * 16}, "GPS:", Color::light_grey()}, | ||
{{0 * 8, 5 * 16}, "ORI:", Color::light_grey()}, | ||
{{0 * 8, 7 * 16}, "ENV:", Color::light_grey()}}; | ||
|
||
Text text_info{{0 * 8, 0 * 8, 30 * 8, 16 * 1}, "Connect a compatible module..."}; | ||
Text text_gps{{5 * 8, 3 * 16, 24 * 8, 16}, "-"}; | ||
Text text_orientation{{5 * 8, 5 * 16, 24 * 8, 16}, "-"}; | ||
Text text_envl1{{5 * 8, 7 * 16, 24 * 8, 16}, "-"}; | ||
Text text_envl2{{1 * 8, 9 * 16, 24 * 8, 16}, "-"}; | ||
|
||
void on_any(); | ||
|
||
void on_gps(const GPSPosDataMessage* msg); | ||
void on_orientation(const OrientationDataMessage* msg); | ||
void on_environment(const EnvironmentDataMessage* msg); | ||
|
||
MessageHandlerRegistration message_handler_gps{ | ||
Message::ID::GPSPosData, | ||
[this](Message* const p) { | ||
const auto message = static_cast<const GPSPosDataMessage*>(p); | ||
this->on_gps(message); | ||
}}; | ||
MessageHandlerRegistration message_handler_orientation{ | ||
Message::ID::OrientationData, | ||
[this](Message* const p) { | ||
const auto message = static_cast<const OrientationDataMessage*>(p); | ||
this->on_orientation(message); | ||
}}; | ||
|
||
MessageHandlerRegistration message_handler_environment{ | ||
Message::ID::EnvironmentData, | ||
[this](Message* const p) { | ||
const auto message = static_cast<const EnvironmentDataMessage*>(p); | ||
this->on_environment(message); | ||
}}; | ||
}; | ||
}; // namespace ui::external_app::extsensors | ||
|
||
#endif /*__UI_EXTSENSORS_H__*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.