本文整理汇总了C++中Validity类的典型用法代码示例。如果您正苦于以下问题:C++ Validity类的具体用法?C++ Validity怎么用?C++ Validity使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Validity类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MacCreadyProcessTimer
static bool
MacCreadyProcessTimer()
{
bool modified = false;
static ExternalSettings last_external_settings;
static Validity last_auto_mac_cready;
const NMEAInfo &basic = CommonInterface::Basic();
const DerivedInfo &calculated = CommonInterface::Calculated();
if (last_auto_mac_cready.Modified(calculated.auto_mac_cready_available)) {
/* time warp, reset */
last_auto_mac_cready.Clear();
modified = true;
}
if (basic.settings.mac_cready_available.Modified(last_external_settings.mac_cready_available)) {
ActionInterface::SetMacCready(basic.settings.mac_cready, false);
modified = true;
} else if (calculated.auto_mac_cready_available.Modified(last_auto_mac_cready)) {
last_auto_mac_cready = calculated.auto_mac_cready_available;
ActionInterface::SetMacCready(calculated.auto_mac_cready);
modified = true;
}
last_external_settings = basic.settings;
return modified;
}
示例2: invalid
static Validity
invalid()
{
Validity v;
v.Clear();
return v;
}
示例3: main
int main(int argc, char **argv)
{
Args args(argc, argv, "DRIVER FILE");
DebugReplay *replay = CreateDebugReplay(args);
if (replay == NULL)
return EXIT_FAILURE;
args.ExpectEnd();
printf("# time wind_bearing (deg) wind_speed (m/s)\n");
GlidePolar glide_polar(fixed(0));
CirclingSettings circling_settings;
WindSettings wind_settings;
wind_settings.SetDefaults();
CirclingComputer circling_computer;
circling_computer.Reset();
WindComputer wind_computer;
wind_computer.Reset();
Validity last;
last.Clear();
while (replay->Next()) {
const MoreData &basic = replay->Basic();
const DerivedInfo &calculated = replay->Calculated();
circling_computer.TurnRate(replay->SetCalculated(),
basic, calculated.flight);
circling_computer.Turning(replay->SetCalculated(),
basic,
calculated.flight,
circling_settings);
wind_computer.Compute(wind_settings, glide_polar, basic,
replay->SetCalculated());
if (calculated.estimated_wind_available.Modified(last)) {
TCHAR time_buffer[32];
FormatTime(time_buffer, replay->Basic().time);
_tprintf(_T("%s %d %g\n"),
time_buffer, (int)calculated.estimated_wind.bearing.Degrees(),
(double)calculated.estimated_wind.norm);
}
last = calculated.estimated_wind_available;
}
delete replay;
}
示例4: activeSheet
void CanvasBase::validateSelection()
{
register Sheet * const sheet = activeSheet();
if (!sheet)
return;
#if 0
XXX TODO
if (selection()->isSingular()) {
const Cell cell = Cell(sheet, selection()->marker()).masterCell();
Validity validity = cell.validity();
if (validity.displayValidationInformation()) {
const QString title = validity.titleInfo();
QString message = validity.messageInfo();
if (title.isEmpty() && message.isEmpty())
return;
if (!d->validationInfo) {
d->validationInfo = new QLabel(this);
QPalette palette = d->validationInfo->palette();
palette.setBrush(QPalette::Window, palette.toolTipBase());
palette.setBrush(QPalette::WindowText, palette.toolTipText());
d->validationInfo->setPalette(palette);
// d->validationInfo->setWindowFlags(Qt::ToolTip);
d->validationInfo->setFrameShape(QFrame::Box);
d->validationInfo->setAlignment(Qt::AlignVCenter);
d->validationInfo->setTextFormat(Qt::RichText);
}
QString resultText("<html><body>");
if (!title.isEmpty()) {
resultText += "<h2>" + title + "</h2>";
}
if (!message.isEmpty()) {
message.replace(QChar('\n'), QString("<br>"));
resultText += "<p>" + message + "</p>";
}
resultText += "</body></html>";
d->validationInfo->setText(resultText);
const double xpos = sheet->columnPosition(cell.column()) + cell.width();
const double ypos = sheet->rowPosition(cell.row()) + cell.height();
const QPointF position = QPointF(xpos, ypos) - offset();
const QPoint viewPosition = viewConverter()->documentToView(position).toPoint();
d->validationInfo->move(/*mapToGlobal*/(viewPosition)); // Qt::ToolTip!
d->validationInfo->show();
} else {
delete d->validationInfo;
d->validationInfo = 0;
}
} else {
delete d->validationInfo;
d->validationInfo = 0;
}
#endif
}
示例5: Reset
void Reset() {
bank_angle_available.Clear();
bank_angle_computed = false;
pitch_angle_available.Clear();
pitch_angle_computed = false;
heading_available.Clear();
heading_computed = false;
}
示例6: Expire
void Expire(fixed clock) {
new_traffic.Expire(clock, fixed(60));
for (unsigned i = list.size(); i-- > 0;)
if (!list[i].Refresh(clock))
list.quick_remove(i);
}
示例7: protect
void
TrafficListWidget::UpdateList()
{
assert(filter_widget != nullptr);
items.clear();
last_update.Clear();
const TCHAR *callsign = filter_widget->GetValueString(CALLSIGN);
if (!StringIsEmpty(callsign)) {
FlarmId ids[30];
unsigned count = FlarmDetails::FindIdsByCallSign(callsign, ids, 30);
for (unsigned i = 0; i < count; ++i)
AddItem(ids[i]);
} else {
/* if no filter was set, show a list of current traffic and known
traffic */
/* add live FLARM traffic */
for (const auto &i : CommonInterface::Basic().flarm.traffic.list) {
AddItem(i.id);
}
/* add FLARM peers that have a user-defined color */
for (const auto &i : traffic_databases->flarm_colors) {
Item &item = AddItem(i.first);
item.color = i.second;
}
/* add FLARM peers that have a user-defined name */
for (const auto &i : traffic_databases->flarm_names) {
AddItem(i.id);
}
#ifdef HAVE_SKYLINES_TRACKING_HANDLER
/* show SkyLines traffic unless this is a FLARM traffic picker
dialog (from dlgTeamCode) */
if (action_listener == nullptr) {
const auto &data = tracking->GetSkyLinesData();
const ScopeLock protect(data.mutex);
for (const auto &i : data.traffic) {
items.emplace_back(i.first, i.second.location);
Item &item = items.back();
if (i.second.location.IsValid() &&
CommonInterface::Basic().location_available)
item.vector = GeoVector(CommonInterface::Basic().location,
i.second.location);
}
}
#endif
}
GetList().SetLength(items.size());
UpdateVolatile();
UpdateButtons();
}
示例8: ProvideAutoMacCready
void ProvideAutoMacCready(fixed clock, fixed mc) {
if (auto_mac_cready_available &&
fabs(auto_mac_cready - mc) < fixed(0.05))
/* change is too small, ignore the new value to limit the rate */
return;
auto_mac_cready = mc;
auto_mac_cready_available.Update(clock);
}
示例9: ProvideWeakBaroAltitude
/**
* Same as ProvideBaroAltitudeTrue(), but don't overwrite a "strong"
* value.
*/
void ProvideWeakBaroAltitude(double value) {
if (baro_altitude_available && !baro_altitude_weak)
/* don't overwrite "strong" value */
return;
baro_altitude = value;
baro_altitude_weak = true;
baro_altitude_available.Update(clock);
}
示例10: ProvideWeakPressureAltitude
/**
* Same as ProvidePressureAltitude(), but don't overwrite a "strong"
* value.
*/
void ProvideWeakPressureAltitude(double value) {
if (pressure_altitude_available && !pressure_altitude_weak)
/* don't overwrite "strong" value */
return;
pressure_altitude = value;
pressure_altitude_weak = true;
pressure_altitude_available.Update(clock);
}
示例11: Refresh
void Refresh(fixed Time) {
available.Expire(Time, fixed(10));
if (!available)
traffic.clear();
for (unsigned i = traffic.size(); i-- > 0;)
if (!traffic[i].Refresh(Time))
traffic.quick_remove(i);
NewTraffic = false;
}
示例12: Complement
void Complement(const FlarmError &add) {
if (available.Complement(add.available)) {
severity = add.severity;
code = add.code;
}
}
示例14: ProvideExternalWind
/**
* Set the external wind value.
*/
void ProvideExternalWind(const SpeedVector &value) {
external_wind = value;
external_wind_available.Update(clock);
}
示例15: Clear
void Clear() {
new_traffic.Clear();
list.clear();
}