Compare commits
32 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d77a793b0 | ||
|
|
d9e802b2f2 | ||
|
|
56fe2a254c | ||
|
|
11a8989ea7 |
||
|
|
ec5ba1171e | ||
|
|
c7a6a52439 | ||
|
|
d7fab3abf8 | ||
|
|
b2e6030344 | ||
|
|
077ab29110 | ||
|
|
a1b87ff111 | ||
|
|
298bc16021 | ||
|
|
3f53cb4761 | ||
|
|
954b31b0c3 | ||
|
|
def03cee35 | ||
|
|
dc32e34595 | ||
|
|
9d4df7335a | ||
|
|
cf930e5a15 | ||
| 1c6bf2c695 | |||
|
|
2759d09045 | ||
|
|
600edb380e |
||
| 13e55f1117 | |||
|
|
281ab4e08e | ||
|
|
a5885a5929 | ||
|
|
8643743b37 | ||
|
|
4cc641690b |
||
|
|
deb44fcab0 | ||
|
|
1967cb71b4 | ||
|
|
44dcf9ed0c | ||
|
|
7b4a66cbc1 | ||
|
|
052373de5e | ||
|
|
d741539597 | ||
|
|
cfad4e21bd |
3 changed files with 435 additions and 8 deletions
127
vfrnav-compile.patch
Normal file
127
vfrnav-compile.patch
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
--- vfrnav-20230429/src/metartaf.cc.orig 2025-01-07 13:51:24.837306522 +0100
|
||||
+++ vfrnav-20230429/src/metartaf.cc 2025-01-07 13:53:02.445841777 +0100
|
||||
@@ -497,7 +497,7 @@
|
||||
"from metar where " + get_querycoord(bbox, tran) + ") T1 where T1.observation_time in "
|
||||
"(select T2.observation_time from metar T2 where T2.station_id = T1.station_id "
|
||||
"order by T2.observation_time desc limit " +
|
||||
- tran.quote(metarhistory) + ")", "Metar Taf Set METAR"));
|
||||
+ tran.quote(metarhistory) + ")", std::string_view{"Metar Taf Set METAR"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
std::pair<result_t::iterator,bool> ins(result.insert(Station(ri[0].as<std::string>(),
|
||||
Point(ri[2].as<Point::coord_t>(), ri[1].as<Point::coord_t>()),
|
||||
@@ -513,7 +513,7 @@
|
||||
"from taf where " + get_querycoord(bbox, tran) + ") T1 where T1.issue_time in "
|
||||
"(select T2.issue_time from taf T2 where T2.station_id = T1.station_id "
|
||||
"order by T2.issue_time desc limit " +
|
||||
- tran.quote(tafhistory) + ")", "Metar Taf Set TAF"));
|
||||
+ tran.quote(tafhistory) + ")", std::string_view{"Metar Taf Set TAF"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
std::pair<result_t::iterator,bool> ins(result.insert(Station(ri[0].as<std::string>(),
|
||||
Point(ri[2].as<Point::coord_t>(), ri[1].as<Point::coord_t>()),
|
||||
@@ -556,7 +556,7 @@
|
||||
q += "valid_from <= " + tran.quote(tmax) + " and valid_to >= " + tran.quote(tmin);
|
||||
if (!false)
|
||||
std::cerr << "pg: sigmet query " << q << std::endl;
|
||||
- pqxx::result r(tran.exec(q, "Briefing Pack SIGMET"));
|
||||
+ pqxx::result r(tran.exec(q, std::string_view{"Briefing Pack SIGMET"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
if (!false)
|
||||
std::cerr << "pg: sigmet for " << ri[0].as<std::string>() << " seq " << ri[8].as<std::string>()
|
||||
--- vfrnav-20230429/carto/osm.cc.orig 2025-01-07 13:55:20.693183894 +0100
|
||||
+++ vfrnav-20230429/carto/osm.cc 2025-01-07 13:56:31.305848028 +0100
|
||||
@@ -1783,7 +1783,7 @@
|
||||
"ST_AsBinary(ST_Transform(way,4326)) from planet_osm_point where way && " + get_queryrect(tran));
|
||||
if (false)
|
||||
std::cerr << "OSM query: " << qstr << std::endl;
|
||||
- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM"));
|
||||
+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
Tags tags;
|
||||
tags.add_pg(to_str(ri[69]));
|
||||
@@ -1894,7 +1894,7 @@
|
||||
"ST_AsBinary(ST_Transform(way,4326)) from planet_osm_line where way && " + get_queryrect(tran));
|
||||
if (false)
|
||||
std::cerr << "OSM query: " << qstr << std::endl;
|
||||
- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM"));
|
||||
+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
Tags tags;
|
||||
tags.add_pg(to_str(ri[68]));
|
||||
@@ -2005,7 +2005,7 @@
|
||||
"ST_AsBinary(ST_Transform(way,4326)) from planet_osm_roads where way && " + get_queryrect(tran));
|
||||
if (false)
|
||||
std::cerr << "OSM query: " << qstr << std::endl;
|
||||
- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM"));
|
||||
+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
Tags tags;
|
||||
tags.add_pg(to_str(ri[68]));
|
||||
@@ -2116,7 +2116,7 @@
|
||||
"ST_AsBinary(ST_Transform(way,4326)) from planet_osm_polygon where way && " + get_queryrect(tran));
|
||||
if (false)
|
||||
std::cerr << "OSM query: " << qstr << std::endl;
|
||||
- pqxx::result r(tran.exec(qstr, "Briefing Pack OSM"));
|
||||
+ pqxx::result r(tran.exec(qstr, std::string_view{"Briefing Pack OSM"}));
|
||||
for (pqxx::result::const_iterator ri(r.begin()), re(r.end()); ri != re; ++ri) {
|
||||
Tags tags;
|
||||
tags.add_pg(to_str(ri[68]));
|
||||
--- vfrnav-20230429/cfmu/adr.cc.orig 2026-01-30 12:46:50.497664549 +0100
|
||||
+++ vfrnav-20230429/cfmu/adr.cc 2026-01-30 12:47:31.905992663 +0100
|
||||
@@ -77,13 +77,13 @@
|
||||
return u;
|
||||
} catch (const std::runtime_error& e) {
|
||||
}
|
||||
- static const boost::uuids::uuid nsuuid = {
|
||||
+ static const boost::uuids::uuid nsuuid = {{
|
||||
0x5b, 0x20, 0xbd, 0x56,
|
||||
0x73, 0x8d,
|
||||
0x47, 0xcb,
|
||||
0xb1, 0xea,
|
||||
0x30, 0x0f, 0x31, 0x7e, 0x8b, 0x32
|
||||
- };
|
||||
+ }};
|
||||
return from_str(nsuuid, x.substr(pfx));
|
||||
}
|
||||
|
||||
@@ -95,13 +95,13 @@
|
||||
|
||||
UUID UUID::from_countryborder(const std::string& x)
|
||||
{
|
||||
- static const boost::uuids::uuid nsuuid = {
|
||||
+ static const boost::uuids::uuid nsuuid = {{
|
||||
0x00, 0xff, 0xf6, 0xf3,
|
||||
0xff, 0xf5,
|
||||
0x43, 0x74,
|
||||
0x96, 0x3b,
|
||||
0x0b, 0x8f, 0x11, 0x34, 0x22, 0xb9
|
||||
- };
|
||||
+ }};
|
||||
return from_str(nsuuid, x);
|
||||
}
|
||||
|
||||
--- vfrnav-20230429/cfmu/adrgraph.cc.orig 2026-01-30 12:46:57.341079989 +0100
|
||||
+++ vfrnav-20230429/cfmu/adrgraph.cc 2026-01-30 12:47:44.106975328 +0100
|
||||
@@ -154,10 +154,10 @@
|
||||
|
||||
const float GraphEdge::maxmetric = std::numeric_limits<float>::max();
|
||||
const float GraphEdge::invalidmetric = std::numeric_limits<float>::quiet_NaN();
|
||||
-const boost::uuids::uuid GraphEdge::matchalluuid = {
|
||||
+const boost::uuids::uuid GraphEdge::matchalluuid = {{
|
||||
0xb7, 0xc9, 0xbe, 0x9a, 0x2e, 0xcb, 0x49, 0x03,
|
||||
0xb2, 0xd5, 0x58, 0xf9, 0xac, 0xbe, 0x36, 0x75
|
||||
-};
|
||||
+}};
|
||||
const UUID GraphEdge::matchall(matchalluuid);
|
||||
|
||||
GraphEdge::GraphEdge(timetype_t tm, const Object::const_ptr_t& obj, unsigned int levels)
|
||||
--- vfrnav-20230429/doc/flightdeck.tex.orig 2026-01-30 13:22:27.770429063 +0100
|
||||
+++ vfrnav-20230429/doc/flightdeck.tex 2026-01-30 13:22:41.561489169 +0100
|
||||
@@ -26,7 +26,7 @@
|
||||
\else
|
||||
\documentclass[a4paper,10pt,dvips]{article}
|
||||
\fi
|
||||
-\usepackage[german,english]{babel}
|
||||
+\usepackage[english]{babel}
|
||||
\selectlanguage{english}
|
||||
\usepackage{graphicx}
|
||||
\usepackage[isolatin]{inputenc}
|
||||
202
vfrnav-octave-colors.patch
Normal file
202
vfrnav-octave-colors.patch
Normal file
|
|
@ -0,0 +1,202 @@
|
|||
From 8b4a8056b9e2e7abcecef80dd29f58d5ff4d5f87 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Sailer <sailer@tsailer.ch>
|
||||
Date: Tue, 7 Jan 2025 12:21:15 +0100
|
||||
Subject: remove octave numeric colors as they are no longer supported in
|
||||
octave 9
|
||||
|
||||
|
||||
diff --git a/doc/hamproptbl.m b/doc/hamproptbl.m
|
||||
index 9fbb5e52..4a930668 100644
|
||||
--- a/doc/hamproptbl.m
|
||||
+++ b/doc/hamproptbl.m
|
||||
@@ -49,14 +49,14 @@ endfor;
|
||||
fprintf(ftbl, "\n};\n");
|
||||
|
||||
f=figure("visible","on");
|
||||
-plot(afval,afcpc(1,:),"1+;CP 1;",...
|
||||
- afval,afcpc(2,:),"2+;CP 2;",...
|
||||
- afval,afctc(1,:),"3+;CT 1;",...
|
||||
- afval,afctc(2,:),"4+;CT 2;",...
|
||||
- min(afval):max(afval),polyval(afcpp(1,:),min(afval):max(afval)),"1-;CP J=0;",...
|
||||
- min(afval):max(afval),polyval(afcpp(2,:),min(afval):max(afval)),"2-;CP J>=0.5;",...
|
||||
- min(afval):max(afval),polyval(afctp(1,:),min(afval):max(afval)),"3-;CT J=0;",...
|
||||
- min(afval):max(afval),polyval(afctp(2,:),min(afval):max(afval)),"4-;CT J>=0.5;");
|
||||
+plot(afval,afcpc(1,:),"r+;CP 1;",...
|
||||
+ afval,afcpc(2,:),"g+;CP 2;",...
|
||||
+ afval,afctc(1,:),"b+;CT 1;",...
|
||||
+ afval,afctc(2,:),"m+;CT 2;",...
|
||||
+ min(afval):max(afval),polyval(afcpp(1,:),min(afval):max(afval)),"r-;CP J=0;",...
|
||||
+ min(afval):max(afval),polyval(afcpp(2,:),min(afval):max(afval)),"g-;CP J>=0.5;",...
|
||||
+ min(afval):max(afval),polyval(afctp(1,:),min(afval):max(afval)),"b-;CT J=0;",...
|
||||
+ min(afval):max(afval),polyval(afctp(2,:),min(afval):max(afval)),"m-;CT J>=0.5;");
|
||||
grid on;
|
||||
xlabel("AF -- Activity Factor");
|
||||
ylabel("CP/CT Factor");
|
||||
@@ -64,10 +64,10 @@ title("CP/CT versus AF");
|
||||
print(f, "propafcpct.eps","-depsc2","-portrait","-color");
|
||||
|
||||
f=figure("visible","on");
|
||||
-plot(afval,afcpc(1,:)-polyval(afcpp(1,:),afval),"1+-;CP J=0 error;",...
|
||||
- afval,afcpc(2,:)-polyval(afcpp(2,:),afval),"2+-;CP J>=0.5 error;",...
|
||||
- afval,afctc(1,:)-polyval(afctp(1,:),afval),"3+-;CT J=0 error;",...
|
||||
- afval,afctc(2,:)-polyval(afctp(2,:),afval),"4+-;CT J>=0.5 error;");
|
||||
+plot(afval,afcpc(1,:)-polyval(afcpp(1,:),afval),"r+-;CP J=0 error;",...
|
||||
+ afval,afcpc(2,:)-polyval(afcpp(2,:),afval),"g+-;CP J>=0.5 error;",...
|
||||
+ afval,afctc(1,:)-polyval(afctp(1,:),afval),"b+-;CT J=0 error;",...
|
||||
+ afval,afctc(2,:)-polyval(afctp(2,:),afval),"m+-;CT J>=0.5 error;");
|
||||
grid on;
|
||||
xlabel("AF -- Activity Factor");
|
||||
ylabel("CP/CT Factor Approximation Error");
|
||||
@@ -150,14 +150,14 @@ endfor;
|
||||
fprintf(ftbl, "\n};\n\n");
|
||||
|
||||
f=figure("visible","on");
|
||||
-plot(zjstal,cpstal(1,:),"1+;CPstall 2 Blade;",...
|
||||
- zjstal,cpstal(2,:),"2+;CPstall 4 Blade;",...
|
||||
- zjstal,cpstal(3,:),"3+;CPstall 6 Blade;",...
|
||||
- zjstal,cpstal(4,:),"4+;CPstall 8 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(cpstalp(1,:),min(zjstal):0.1:max(zjstal)),"1-;CPstall 2 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(cpstalp(2,:),min(zjstal):0.1:max(zjstal)),"2-;CPstall 4 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(cpstalp(3,:),min(zjstal):0.1:max(zjstal)),"3-;CPstall 6 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(cpstalp(4,:),min(zjstal):0.1:max(zjstal)),"4-;CPstall 8 Blade;");
|
||||
+plot(zjstal,cpstal(1,:),"r+;CPstall 2 Blade;",...
|
||||
+ zjstal,cpstal(2,:),"g+;CPstall 4 Blade;",...
|
||||
+ zjstal,cpstal(3,:),"b+;CPstall 6 Blade;",...
|
||||
+ zjstal,cpstal(4,:),"m+;CPstall 8 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(1,:),min(zjstal):0.1:max(zjstal)),"r-;CPstall 2 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(2,:),min(zjstal):0.1:max(zjstal)),"g-;CPstall 4 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(3,:),min(zjstal):0.1:max(zjstal)),"b-;CPstall 6 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(cpstalp(4,:),min(zjstal):0.1:max(zjstal)),"m-;CPstall 8 Blade;");
|
||||
grid on;
|
||||
xlabel("ZJ");
|
||||
ylabel("CP Stall");
|
||||
@@ -165,10 +165,10 @@ title("CP Stall versus ZJ");
|
||||
print(f,"propcpstal.eps","-depsc2","-portrait","-color");
|
||||
|
||||
f=figure("visible","on");
|
||||
-plot(zjstal,cpstal(1,:)-polyval(cpstalp(1,:),zjstal),"1+-;CPstall 2 Blade error;",...
|
||||
- zjstal,cpstal(2,:)-polyval(cpstalp(2,:),zjstal),"2+-;CPstall 4 Blade error;",...
|
||||
- zjstal,cpstal(3,:)-polyval(cpstalp(3,:),zjstal),"3+-;CPstall 6 Blade error;",...
|
||||
- zjstal,cpstal(4,:)-polyval(cpstalp(4,:),zjstal),"4+-;CPstall 8 Blade error;");
|
||||
+plot(zjstal,cpstal(1,:)-polyval(cpstalp(1,:),zjstal),"r+-;CPstall 2 Blade error;",...
|
||||
+ zjstal,cpstal(2,:)-polyval(cpstalp(2,:),zjstal),"g+-;CPstall 4 Blade error;",...
|
||||
+ zjstal,cpstal(3,:)-polyval(cpstalp(3,:),zjstal),"b+-;CPstall 6 Blade error;",...
|
||||
+ zjstal,cpstal(4,:)-polyval(cpstalp(4,:),zjstal),"m+-;CPstall 8 Blade error;");
|
||||
grid on;
|
||||
xlabel("ZJ");
|
||||
ylabel("CP Stall Approximation Error");
|
||||
@@ -176,14 +176,14 @@ title("CP Stall versus ZJ Approximation Error");
|
||||
print(f,"propcpstalerr.eps","-depsc2","-portrait","-color");
|
||||
|
||||
f=figure("visible","on");
|
||||
-plot(zjstal,ctstal(1,:),"1+;CTstall 2 Blade;",...
|
||||
- zjstal,ctstal(2,:),"2+;CTstall 4 Blade;",...
|
||||
- zjstal,ctstal(3,:),"3+;CTstall 6 Blade;",...
|
||||
- zjstal,ctstal(4,:),"4+;CTstall 8 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(ctstalp(1,:),min(zjstal):0.1:max(zjstal)),"1-;CTstall 2 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(ctstalp(2,:),min(zjstal):0.1:max(zjstal)),"2-;CTstall 4 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(ctstalp(3,:),min(zjstal):0.1:max(zjstal)),"3-;CTstall 6 Blade;",...
|
||||
- min(zjstal):0.1:max(zjstal),polyval(ctstalp(4,:),min(zjstal):0.1:max(zjstal)),"4-;CTstall 8 Blade;");
|
||||
+plot(zjstal,ctstal(1,:),"r+;CTstall 2 Blade;",...
|
||||
+ zjstal,ctstal(2,:),"g+;CTstall 4 Blade;",...
|
||||
+ zjstal,ctstal(3,:),"b+;CTstall 6 Blade;",...
|
||||
+ zjstal,ctstal(4,:),"m+;CTstall 8 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(1,:),min(zjstal):0.1:max(zjstal)),"r-;CTstall 2 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(2,:),min(zjstal):0.1:max(zjstal)),"g-;CTstall 4 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(3,:),min(zjstal):0.1:max(zjstal)),"b-;CTstall 6 Blade;",...
|
||||
+ min(zjstal):0.1:max(zjstal),polyval(ctstalp(4,:),min(zjstal):0.1:max(zjstal)),"m-;CTstall 8 Blade;");
|
||||
grid on;
|
||||
xlabel("ZJ");
|
||||
ylabel("CT Stall");
|
||||
@@ -191,10 +191,10 @@ title("CT Stall versus ZJ");
|
||||
print(f,"propctstal.eps","-depsc2","-portrait","-color");
|
||||
|
||||
f=figure("visible","on");
|
||||
-plot(zjstal,ctstal(1,:)-polyval(ctstalp(1,:),zjstal),"1+-;CTstall 2 Blade error;",...
|
||||
- zjstal,ctstal(2,:)-polyval(ctstalp(2,:),zjstal),"2+-;CTstall 4 Blade error;",...
|
||||
- zjstal,ctstal(3,:)-polyval(ctstalp(3,:),zjstal),"3+-;CTstall 6 Blade error;",...
|
||||
- zjstal,ctstal(4,:)-polyval(ctstalp(4,:),zjstal),"4+-;CTstall 8 Blade error;");
|
||||
+plot(zjstal,ctstal(1,:)-polyval(ctstalp(1,:),zjstal),"r+-;CTstall 2 Blade error;",...
|
||||
+ zjstal,ctstal(2,:)-polyval(ctstalp(2,:),zjstal),"g+-;CTstall 4 Blade error;",...
|
||||
+ zjstal,ctstal(3,:)-polyval(ctstalp(3,:),zjstal),"b+-;CTstall 6 Blade error;",...
|
||||
+ zjstal,ctstal(4,:)-polyval(ctstalp(4,:),zjstal),"m+-;CTstall 8 Blade error;");
|
||||
grid on;
|
||||
xlabel("ZJ");
|
||||
ylabel("CT Stall Approximation Error");
|
||||
diff --git a/doc/p28rperf.m b/doc/p28rperf.m
|
||||
index c4b1e7f2..147da3e6 100644
|
||||
--- a/doc/p28rperf.m
|
||||
+++ b/doc/p28rperf.m
|
||||
@@ -113,12 +113,12 @@ io360altperf=[0 200 176 0 ;
|
||||
alt=0:100:18000;
|
||||
[p t rho]=icaoatmo(alt);
|
||||
clf;
|
||||
-plot(io360altperf(io360altperf(:,2)>0,2),io360altperf(io360altperf(:,2)>0,1),"+1;RPM=2700;",...
|
||||
- io360altperf(io360altperf(:,3)>0,3),io360altperf(io360altperf(:,3)>0,1),"+2;RPM=2400;",...
|
||||
- io360altperf(io360altperf(:,4)>0,4),io360altperf(io360altperf(:,4)>0,1),"+3;RPM=2100;",...
|
||||
- P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),alt,"-1;RPM=2700;",...
|
||||
- P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,alt,"-2;RPM=2400;",...
|
||||
- P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,alt,"-3;RPM=2100;");
|
||||
+plot(io360altperf(io360altperf(:,2)>0,2),io360altperf(io360altperf(:,2)>0,1),"+r;RPM=2700;",...
|
||||
+ io360altperf(io360altperf(:,3)>0,3),io360altperf(io360altperf(:,3)>0,1),"+g;RPM=2400;",...
|
||||
+ io360altperf(io360altperf(:,4)>0,4),io360altperf(io360altperf(:,4)>0,1),"+b;RPM=2100;",...
|
||||
+ P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),alt,"-r;RPM=2700;",...
|
||||
+ P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,alt,"-g;RPM=2400;",...
|
||||
+ P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,alt,"-b;RPM=2100;");
|
||||
title("IO-360-C Engine Full Throttle SHP versus Altitude");
|
||||
xlabel("Shaft Horse Power");
|
||||
ylabel("Altitude [ft]");
|
||||
@@ -137,12 +137,12 @@ for tt=1:3;
|
||||
x=x/sum(x);
|
||||
RPMC(tt)=(x(1)-1)/x(1);
|
||||
endfor;
|
||||
-plot(rho1(io360altperf(:,2)>0)/rho1(1),io360altperf(io360altperf(:,2)>0,2),"+1;RPM=2700;",...
|
||||
- rho1(io360altperf(:,3)>0)/rho1(1),io360altperf(io360altperf(:,3)>0,3),"+2;RPM=2400;",...
|
||||
- rho1(io360altperf(:,4)>0)/rho1(1),io360altperf(io360altperf(:,4)>0,4),"+3;RPM=2100;",...
|
||||
- rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),"-1;RPM=2700;",...
|
||||
- rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,"-2;RPM=2400;",...
|
||||
- rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,"-3;RPM=2100;");
|
||||
+plot(rho1(io360altperf(:,2)>0)/rho1(1),io360altperf(io360altperf(:,2)>0,2),"+r;RPM=2700;",...
|
||||
+ rho1(io360altperf(:,3)>0)/rho1(1),io360altperf(io360altperf(:,3)>0,3),"+g;RPM=2400;",...
|
||||
+ rho1(io360altperf(:,4)>0)/rho1(1),io360altperf(io360altperf(:,4)>0,4),"+b;RPM=2100;",...
|
||||
+ rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C),"-r;RPM=2700;",...
|
||||
+ rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2400/2700)^1.13,"-g;RPM=2400;",...
|
||||
+ rho/rho(1),P0/hp_to_ftlbfps*(rho/rho(1)-C)/(1-C)*(2100/2700)^1.13,"-b;RPM=2100;");
|
||||
title("IO-360-C Engine Full Throttle SHP versus Altitude");
|
||||
xlabel("Relative Density [relative]");
|
||||
ylabel("Shaft Horse Power");
|
||||
@@ -512,6 +512,7 @@ for plimidx=1:2;
|
||||
ROD=zeros(length(vc),size(alt,2));
|
||||
rpm=zeros(length(vc),size(alt,2));
|
||||
dist=zeros(length(vc),size(alt,2));
|
||||
+ col=jet(length(vc));
|
||||
clf;
|
||||
for vci=1:length(vc);
|
||||
D=0.5*CD0*vc(vci)^2*mph_to_ftps^2*rho0*S+W^2./(0.5*vc(vci)^2*mph_to_ftps^2*rho0*S*pi*A*ee);
|
||||
@@ -521,7 +522,7 @@ for plimidx=1:2;
|
||||
ROD(vci,:)=vc(vci)*mph_to_kts*nmi_to_ft/60*sqrt(rho(1)./rho)/W.*(D-T);
|
||||
#dist(vci,2:length(alt))=cumsum((alt(2:length(alt))-alt(1:length(alt)-1))./ROD(vci,1:length(alt)-1)/60*vc(vci).*sqrt(rho(1)./rho(1:length(alt)-1)));
|
||||
dist(vci,2:length(alt))=cumsum((alt(2:length(alt))-alt(1:length(alt)-1))*W./(D-T)(1:length(alt)-1))/(mph_to_kts*nmi_to_ft);
|
||||
- plot(ROD(vci,:),alt,sprintf("%u;VCAS=%5.1fMPH;",vci*2-1,vc(vci)));
|
||||
+ plot(ROD(vci,:),alt,sprintf(";VCAS=%5.1fMPH;",vc(vci)),"color",col(vci,:));
|
||||
hold on;
|
||||
endfor;
|
||||
hold off;
|
||||
@@ -535,7 +536,7 @@ for plimidx=1:2;
|
||||
|
||||
clf;
|
||||
for vci=1:length(vc);
|
||||
- plot(dist(vci,:),alt,sprintf("%u;VCAS=%5.1fMPH;",vci*2-1,vc(vci)));
|
||||
+ plot(dist(vci,:),alt,sprintf(";VCAS=%5.1fMPH;",vc(vci)),"color",col(vci,:));
|
||||
hold on;
|
||||
endfor;
|
||||
hold off;
|
||||
@@ -549,7 +550,7 @@ for plimidx=1:2;
|
||||
|
||||
clf;
|
||||
for vci=1:length(vc);
|
||||
- plot(rpm(vci,:),alt,sprintf("%u;VCAS=%5.1fMPH;",vci*2-1,vc(vci)));
|
||||
+ plot(rpm(vci,:),alt,sprintf(";VCAS=%5.1fMPH;",vc(vci)),"color",col(vci,:));
|
||||
hold on;
|
||||
endfor;
|
||||
hold off;
|
||||
114
vfrnav.spec
114
vfrnav.spec
|
|
@ -1,11 +1,16 @@
|
|||
Name: vfrnav
|
||||
Version: 20230429
|
||||
Release: 7%{?dist}
|
||||
Release: 37%{?dist}
|
||||
Summary: VFR/IFR Navigation
|
||||
|
||||
License: GPL-2.0-or-later
|
||||
URL: https://gitlab.com/tsailer/vfrnav/
|
||||
Source0: https://gitlab.com/tsailer/vfrnav/-/archive/%{version}/%{name}-%{version}.tar.bz2
|
||||
Source: https://gitlab.com/tsailer/vfrnav/-/archive/%{version}/%{name}-%{version}.tar.bz2
|
||||
Patch: vfrnav-octave-colors.patch
|
||||
Patch: vfrnav-compile.patch
|
||||
|
||||
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
|
||||
ExcludeArch: %{ix86}
|
||||
|
||||
%bcond_without webservice
|
||||
%bcond_with wetterdl
|
||||
|
|
@ -100,7 +105,7 @@ Requires: texlive-xstring
|
|||
Requires: texlive-hyphenat
|
||||
Requires: tex(t2aenc.def)
|
||||
Requires: texlive-lh
|
||||
Requires: texlive-xetex-def
|
||||
Requires: texlive-xetex
|
||||
Requires: texlive-framed
|
||||
Requires: texlive-polyglossia
|
||||
Requires: texlive-multirow
|
||||
|
|
@ -236,6 +241,11 @@ This package contains a webservice for the CFMU Autorouter.
|
|||
%autosetup -p1
|
||||
autoreconf -fiv
|
||||
|
||||
# Create a sysusers.d config file
|
||||
cat >vfrnav.sysusers.conf <<EOF
|
||||
u vfrnav - 'Special user account to be used by vfrnav cfmuautoroute/cfmuvalidate services' /var/lib/vfrnav -
|
||||
EOF
|
||||
|
||||
%build
|
||||
CXXFLAGS=`echo %optflags | sed -e 's/-O2//'`
|
||||
export CXXFLAGS
|
||||
|
|
@ -313,11 +323,8 @@ rm -f $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/32x32/apps/wetterdl.png
|
|||
rm -f $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/48x48/apps/wetterdl.png
|
||||
%endif
|
||||
|
||||
%pre validatorservice
|
||||
getent group vfrnav &>/dev/null || groupadd -r vfrnav
|
||||
getent passwd vfrnav &>/dev/null || \
|
||||
useradd -g vfrnav -d /var/lib/vfrnav -M -r -s /sbin/nologin \
|
||||
-c "Special user account to be used by vfrnav cfmuautoroute/cfmuvalidate services" vfrnav
|
||||
install -m0644 -D vfrnav.sysusers.conf %{buildroot}%{_sysusersdir}/vfrnav.conf
|
||||
|
||||
|
||||
%post selinux
|
||||
/usr/sbin/semodule -i %{_datadir}/selinux/packages/%{name}/%{name}.pp >/dev/null 2>&1 || :
|
||||
|
|
@ -458,6 +465,7 @@ fi
|
|||
%dir %attr(0755,vfrnav,vfrnav) /run/vfrnav
|
||||
%dir %attr(0750,vfrnav,vfrnav) /run/vfrnav/validator
|
||||
%dir %attr(0750,vfrnav,vfrnav) /var/lib/vfrnav
|
||||
%{_sysusersdir}/vfrnav.conf
|
||||
|
||||
%files selinux
|
||||
%{_datadir}/selinux/packages/%{name}/vfrnav.pp
|
||||
|
|
@ -473,6 +481,96 @@ fi
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 20230429-37
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
|
||||
|
||||
* Fri Jun 19 2026 Sandro Mani <manisandro@gmail.com> - 20230429-36
|
||||
- Rebuild (gdal)
|
||||
|
||||
* Sat Jun 13 2026 Yaakov Selkowitz <yselkowi@redhat.com> - 20230429-35
|
||||
- Rebuilt for openssl 4.0
|
||||
|
||||
* Sun Mar 22 2026 Björn Esser <besser82@fedoraproject.org> - 20230429-34
|
||||
- Rebuild (jsoncpp)
|
||||
|
||||
* Fri Feb 27 2026 Orion Poplawski <orion@nwra.com> - 20230429-33
|
||||
- Rebuild for octave 11.1
|
||||
|
||||
* Wed Feb 18 2026 Thomas Sailer <fedora@tsailer.ch> - 20230429-32
|
||||
- fix requires
|
||||
|
||||
* Sun Jan 25 2026 Elliott Sales de Andrade <quantum.analyst@gmail.com> - 20230429-31
|
||||
- Drop support for i686
|
||||
|
||||
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 20230429-30
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Wed Jan 14 2026 Jitka Plesnikova <jplesnik@redhat.com> - 20230429-29
|
||||
- Rebuild for new gpsd
|
||||
|
||||
* Sun Nov 23 2025 Sandro Mani <manisandro@gmail.com> - 20230429-28
|
||||
- Rebuild (gdal)
|
||||
|
||||
* Tue Oct 28 2025 Sandro Mani <manisandro@gmail.com> - 20230429-27
|
||||
- Rebuild (geos)
|
||||
|
||||
* Wed Sep 03 2025 Sandro Mani <manisandro@gmail.com> - 20230429-26
|
||||
- Rebuild (geos)
|
||||
|
||||
* Thu Aug 07 2025 Orion Poplawski <orion@nwra.com> - 20230429-25
|
||||
- Rebuild for Octave 10.2
|
||||
|
||||
* Tue Jul 29 2025 Sandro Mani <manisandro@gmail.com> - 20230429-24
|
||||
- Rebuild (gdal)
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20230429-23
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Tue May 27 2025 Remi Collet <remi@fedoraproject.org> - 20230429-22
|
||||
- rebuild for new gpsd
|
||||
|
||||
* Wed Mar 05 2025 Sandro Mani <manisandro@gmail.com> - 20230429-21
|
||||
- Rebuild (geos)
|
||||
|
||||
* Thu Feb 27 2025 Björn Esser <besser82@fedoraproject.org> - 20230429-20
|
||||
- Rebuild (jsoncpp)
|
||||
|
||||
* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 20230429-19
|
||||
- Add sysusers.d config file to allow rpm to create users/groups automatically
|
||||
|
||||
* Sun Feb 02 2025 Orion Poplawski <orion@nwra.com> - 20230429-18
|
||||
- Rebuild with gsl 2.8
|
||||
|
||||
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 20230429-17
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Tue Jan 07 2025 Thomas Sailer <fedora@tsailer.ch> - 20230429-16
|
||||
- fixes for octave 9
|
||||
|
||||
* Mon Dec 23 2024 Björn Esser <besser82@fedoraproject.org> - 20230429-15
|
||||
- Rebuild (libpqxx)
|
||||
|
||||
* Thu Nov 14 2024 Orion Poplawski <orion@nwra.com> - 20230429-14
|
||||
- Rebuild for octave 9.2
|
||||
|
||||
* Fri Nov 08 2024 Sandro Mani <manisandro@gmail.com> - 20230429-13
|
||||
- Rebuild (gdal)
|
||||
|
||||
* Fri Oct 25 2024 Orion Poplawski <orion@nwra.com> - 20230429-12
|
||||
- Rebuild for yaml-cpp 0.8
|
||||
|
||||
* Tue Sep 10 2024 Sandro Mani <manisandro@gmail.com> - 20230429-11
|
||||
- Rebuild (geos)
|
||||
|
||||
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20230429-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Thu Jun 06 2024 Sandro Mani <manisandro@gmail.com> - 20230429-9
|
||||
- Rebuild (geos)
|
||||
|
||||
* Mon May 13 2024 Sandro Mani <manisandro@gmail.com> - 20230429-8
|
||||
- Rebuild (gdal)
|
||||
|
||||
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 20230429-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue