mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
LP-572 Handle HomeLocation.Set flag and update Home picture according to status
This commit is contained in:
parent
fd92c900a8
commit
b2b6e58b68
@ -98,6 +98,12 @@ void HomeItem::RefreshPos()
|
|||||||
toggleRefresh = false;
|
toggleRefresh = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HomeItem::SetHomePic(QString HomePic)
|
||||||
|
{
|
||||||
|
pic.load(":/markers/images/" + HomePic);
|
||||||
|
pic = pic.scaled(30, 30, Qt::IgnoreAspectRatio);
|
||||||
|
}
|
||||||
|
|
||||||
void HomeItem::setOpacitySlot(qreal opacity)
|
void HomeItem::setOpacitySlot(qreal opacity)
|
||||||
{
|
{
|
||||||
setOpacity(opacity);
|
setOpacity(opacity);
|
||||||
|
@ -102,6 +102,7 @@ protected:
|
|||||||
QPainterPath shape() const;
|
QPainterPath shape() const;
|
||||||
public slots:
|
public slots:
|
||||||
void RefreshPos();
|
void RefreshPos();
|
||||||
|
void SetHomePic(QString HomePic);
|
||||||
void setOpacitySlot(qreal opacity);
|
void setOpacitySlot(qreal opacity);
|
||||||
signals:
|
signals:
|
||||||
void homePositionChanged(internals::PointLatLng coord, float);
|
void homePositionChanged(internals::PointLatLng coord, float);
|
||||||
|
@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="463.89285"
|
||||||
|
height="438.87704"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.46"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="dynaHouse.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 526.18109 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||||
|
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||||
|
id="perspective10" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.4098083"
|
||||||
|
inkscape:cx="231.94643"
|
||||||
|
inkscape:cy="219.43852"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1006"
|
||||||
|
inkscape:window-height="954"
|
||||||
|
inkscape:window-x="660"
|
||||||
|
inkscape:window-y="43" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-42.339286,-276.34171)">
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 437.14509,499.4375 L 437.14509,499.4375 z M 437.14509,499.4375 L 274.33259,355.25 L 111.42634,499.5 L 111.42634,705.625 C 111.42634,710.94838 115.72796,715.21875 121.05134,715.21875 L 222.86384,715.21875 L 222.86384,624.84375 C 222.86384,619.52035 227.13421,615.21875 232.45759,615.21875 L 316.11384,615.21875 C 321.43719,615.21875 325.70759,619.52037 325.70759,624.84375 L 325.70759,715.21875 L 427.55134,715.21875 C 432.87471,715.21875 437.14511,710.9484 437.14509,705.625 L 437.14509,499.4375 z M 111.42634,499.5 L 111.42634,499.5 z"
|
||||||
|
id="rect2391"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 273.3878,276.34171 L 42.339286,480.92527 L 66.677596,508.38266 L 274.33298,324.49848 L 481.9411,508.38266 L 506.23215,480.92527 L 275.2309,276.34171 L 274.33298,277.3814 L 273.3878,276.34171 z"
|
||||||
|
id="path2399" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1"
|
||||||
|
d="M 111.42634,305.79074 L 169.99777,305.79074 L 169.48739,340.48183 L 111.42634,392.9336 L 111.42634,305.79074 z"
|
||||||
|
id="rect2404"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="463.89285"
|
||||||
|
height="438.87704"
|
||||||
|
id="svg2"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
version="1.0"
|
||||||
|
sodipodi:docname="home2_set.svg"
|
||||||
|
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<inkscape:perspective
|
||||||
|
sodipodi:type="inkscape:persp3d"
|
||||||
|
inkscape:vp_x="0 : 526.18109 : 1"
|
||||||
|
inkscape:vp_y="0 : 1000 : 0"
|
||||||
|
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||||
|
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||||
|
id="perspective10" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
gridtolerance="10000"
|
||||||
|
guidetolerance="10"
|
||||||
|
objecttolerance="10"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.2804681"
|
||||||
|
inkscape:cx="231.94643"
|
||||||
|
inkscape:cy="219.43852"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1016"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="27"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:snap-bbox="true"
|
||||||
|
inkscape:bbox-nodes="true"
|
||||||
|
inkscape:snap-bbox-edge-midpoints="true" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-42.339286,-276.34171)">
|
||||||
|
<rect
|
||||||
|
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:1;fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.86600006;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||||
|
id="rect3345"
|
||||||
|
width="129.64009"
|
||||||
|
height="110.11597"
|
||||||
|
x="209.46567"
|
||||||
|
y="605.10278" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 437.14509,499.4375 L 437.14509,499.4375 z M 437.14509,499.4375 L 274.33259,355.25 L 111.42634,499.5 L 111.42634,705.625 C 111.42634,710.94838 115.72796,715.21875 121.05134,715.21875 L 222.86384,715.21875 L 222.86384,624.84375 C 222.86384,619.52035 227.13421,615.21875 232.45759,615.21875 L 316.11384,615.21875 C 321.43719,615.21875 325.70759,619.52037 325.70759,624.84375 L 325.70759,715.21875 L 427.55134,715.21875 C 432.87471,715.21875 437.14511,710.9484 437.14509,705.625 L 437.14509,499.4375 z M 111.42634,499.5 L 111.42634,499.5 z"
|
||||||
|
id="rect2391"
|
||||||
|
sodipodi:nodetypes="cccccccccccccccccc" />
|
||||||
|
<path
|
||||||
|
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="M 273.3878,276.34171 L 42.339286,480.92527 L 66.677596,508.38266 L 274.33298,324.49848 L 481.9411,508.38266 L 506.23215,480.92527 L 275.2309,276.34171 L 274.33298,277.3814 L 273.3878,276.34171 z"
|
||||||
|
id="path2399" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.40000001;stroke-miterlimit:4;stroke-opacity:1"
|
||||||
|
d="M 111.42634,305.79074 L 169.99777,305.79074 L 169.48739,340.48183 L 111.42634,392.9336 L 111.42634,305.79074 z"
|
||||||
|
id="rect2404"
|
||||||
|
sodipodi:nodetypes="ccccc" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.0 KiB |
@ -6,6 +6,8 @@
|
|||||||
<file>images/wp_marker_red.png</file>
|
<file>images/wp_marker_red.png</file>
|
||||||
<file>images/compas.svg</file>
|
<file>images/compas.svg</file>
|
||||||
<file>images/home2.svg</file>
|
<file>images/home2.svg</file>
|
||||||
|
<file>images/home2_not_set.svg</file>
|
||||||
|
<file>images/home2_set.svg</file>
|
||||||
<file>images/nav.svg</file>
|
<file>images/nav.svg</file>
|
||||||
<file>images/home.png</file>
|
<file>images/home.png</file>
|
||||||
<file>images/home.svg</file>
|
<file>images/home.svg</file>
|
||||||
|
@ -107,6 +107,12 @@ void OPMapWidget::SetUavPic(QString UAVPic)
|
|||||||
GPS->SetUavPic(UAVPic);
|
GPS->SetUavPic(UAVPic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
void OPMapWidget::SetHomePic(QString HomePic)
|
||||||
|
{
|
||||||
|
if (Home != 0) {
|
||||||
|
Home->SetHomePic(HomePic);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
WayPointLine *OPMapWidget::WPLineCreate(WayPointItem *from, WayPointItem *to, QColor color, bool dashed, int width)
|
WayPointLine *OPMapWidget::WPLineCreate(WayPointItem *from, WayPointItem *to, QColor color, bool dashed, int width)
|
||||||
{
|
{
|
||||||
|
@ -521,6 +521,7 @@ public:
|
|||||||
}
|
}
|
||||||
void SetShowDiagnostics(bool const & value);
|
void SetShowDiagnostics(bool const & value);
|
||||||
void SetUavPic(QString UAVPic);
|
void SetUavPic(QString UAVPic);
|
||||||
|
void SetHomePic(QString HomePic);
|
||||||
WayPointLine *WPLineCreate(WayPointItem *from, WayPointItem *to, QColor color, bool dashed = false, int width = -1);
|
WayPointLine *WPLineCreate(WayPointItem *from, WayPointItem *to, QColor color, bool dashed = false, int width = -1);
|
||||||
WayPointLine *WPLineCreate(HomeItem *from, WayPointItem *to, QColor color, bool dashed = false, int width = -1);
|
WayPointLine *WPLineCreate(HomeItem *from, WayPointItem *to, QColor color, bool dashed = false, int width = -1);
|
||||||
WayPointCircle *WPCircleCreate(WayPointItem *center, WayPointItem *radius, bool clockwise, QColor color, bool dashed = false, int width = -1);
|
WayPointCircle *WPCircleCreate(WayPointItem *center, WayPointItem *radius, bool clockwise, QColor color, bool dashed = false, int width = -1);
|
||||||
|
@ -936,6 +936,16 @@ void OPMapGadgetWidget::homePositionUpdated(UAVObject *hp)
|
|||||||
if (obum->getHomeLocation(set, LLA) < 0) {
|
if (obum->getHomeLocation(set, LLA) < 0) {
|
||||||
return; // error
|
return; // error
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString HomePic;
|
||||||
|
|
||||||
|
if (set) {
|
||||||
|
HomePic = "home2_set.svg";
|
||||||
|
} else {
|
||||||
|
HomePic = "home2_not_set.svg";
|
||||||
|
}
|
||||||
|
|
||||||
|
SetHomePic(HomePic);
|
||||||
setHome(internals::PointLatLng(LLA[0], LLA[1]), LLA[2]);
|
setHome(internals::PointLatLng(LLA[0], LLA[1]), LLA[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2412,7 +2422,7 @@ bool OPMapGadgetWidget::setHomeLocationObject()
|
|||||||
}
|
}
|
||||||
|
|
||||||
double LLA[3] = { m_home_position.coord.Lat(), m_home_position.coord.Lng(), m_home_position.altitude };
|
double LLA[3] = { m_home_position.coord.Lat(), m_home_position.coord.Lng(), m_home_position.altitude };
|
||||||
return obum->setHomeLocation(LLA, true) >= 0;
|
return obum->setHomeLocation(LLA, m_telemetry_connected) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// *************************************************************************************
|
// *************************************************************************************
|
||||||
@ -2422,6 +2432,11 @@ void OPMapGadgetWidget::SetUavPic(QString UAVPic)
|
|||||||
m_map->SetUavPic(UAVPic);
|
m_map->SetUavPic(UAVPic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OPMapGadgetWidget::SetHomePic(QString HomePic)
|
||||||
|
{
|
||||||
|
m_map->SetHomePic(HomePic);
|
||||||
|
}
|
||||||
|
|
||||||
void OPMapGadgetWidget::on_tbFind_clicked()
|
void OPMapGadgetWidget::on_tbFind_clicked()
|
||||||
{
|
{
|
||||||
QPalette pal = m_widget->leFind->palette();
|
QPalette pal = m_widget->leFind->palette();
|
||||||
|
@ -111,6 +111,7 @@ public:
|
|||||||
void setCacheLocation(QString cacheLocation);
|
void setCacheLocation(QString cacheLocation);
|
||||||
void setMapMode(opMapModeType mode);
|
void setMapMode(opMapModeType mode);
|
||||||
void SetUavPic(QString UAVPic);
|
void SetUavPic(QString UAVPic);
|
||||||
|
void SetHomePic(QString HomePic);
|
||||||
void setMaxUpdateRate(int update_rate);
|
void setMaxUpdateRate(int update_rate);
|
||||||
void setHomePosition(QPointF pos);
|
void setHomePosition(QPointF pos);
|
||||||
void setOverlayOpacity(qreal value);
|
void setOverlayOpacity(qreal value);
|
||||||
|
@ -321,7 +321,7 @@ QString UAVObjectUtilManager::getBoardDescriptionString()
|
|||||||
// ******************************
|
// ******************************
|
||||||
// HomeLocation
|
// HomeLocation
|
||||||
|
|
||||||
int UAVObjectUtilManager::setHomeLocation(double LLA[3], bool save_to_sdcard)
|
int UAVObjectUtilManager::setHomeLocation(double LLA[3], bool set)
|
||||||
{
|
{
|
||||||
double Be[3];
|
double Be[3];
|
||||||
|
|
||||||
@ -341,13 +341,11 @@ int UAVObjectUtilManager::setHomeLocation(double LLA[3], bool save_to_sdcard)
|
|||||||
homeLocationData.Be[1] = Be[1];
|
homeLocationData.Be[1] = Be[1];
|
||||||
homeLocationData.Be[2] = Be[2];
|
homeLocationData.Be[2] = Be[2];
|
||||||
|
|
||||||
homeLocationData.Set = HomeLocation::SET_TRUE;
|
homeLocationData.Set = set;
|
||||||
|
|
||||||
homeLocation->setData(homeLocationData);
|
homeLocation->setData(homeLocationData);
|
||||||
|
|
||||||
if (save_to_sdcard) {
|
saveObjectToSD(homeLocation);
|
||||||
saveObjectToSD(homeLocation);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,7 @@ public:
|
|||||||
UAVObjectUtilManager();
|
UAVObjectUtilManager();
|
||||||
~UAVObjectUtilManager();
|
~UAVObjectUtilManager();
|
||||||
|
|
||||||
int setHomeLocation(double LLA[3], bool save_to_sdcard);
|
int setHomeLocation(double LLA[3], bool set);
|
||||||
int getHomeLocation(bool &set, double LLA[3]);
|
int getHomeLocation(bool &set, double LLA[3]);
|
||||||
|
|
||||||
int getGPSPositionSensor(double LLA[3]);
|
int getGPSPositionSensor(double LLA[3]);
|
||||||
|
Loading…
Reference in New Issue
Block a user