C++Guns – RoboBlog

29.05.2015

warning: conversion to 'float' from 'int' may alter its value [-Wconversion] (Bug of the day 7)

Filed under: Allgemein — Tags: , , — Thomas @ 22:05

Another bug of the day :D You can do the following float var = float(vari); // yes I know I'm loosing precision int var = int(std::floor(varf)) // yes I know interger can overflow int var = qFloor(varf) // Qt version Same for double. warning: comparison between signed and unsigned integer expressions [-Wsign-compare] Tricky one. Usually […]

2.1GB limit Qt Container (Bug of the day 6)

Filed under: Allgemein — Tags: , — Thomas @ 13:05

Diesmal hab ich mir selbst in den Fuß geschossen. Zum zweiten mal in den selben. Alle Qt Container können nur maximal 2.1GB allocieren. Das ist eine Design Entscheidung von Qt. Dummerweise wird keine Fehlermeldung erstellt falls man mehr Speicher braucht. Ich kann schon verstehen, dass es irgendwie falsch ist, wenn eine GUI Anwendung auf einmal […]

20.05.2015

-1 (Bug of the day 5)

Filed under: Allgemein — Tags: , — Thomas @ 19:05

vector vecB; vecB.resize(vecA.size()-1); for(size_t i = 0; i < vecA.size(); ++i) { ... vecB[i] = value ... } Na, wer findet ihn? Bei so etwas findet ich QT's QVector wieder besser als den Standard c++ vector. Qt macht zumindest bei Debug Einstellung eine Bereichsüberprüfung. Ausser es wird die at() Funktion statt den operator() benutzt. Dann […]

18.05.2015

2qm2015 Gleisplan

Filed under: Allgemein — Tags: , — Thomas @ 22:05

Hier der aktualisierte Gleisplan. Immer wieder interessant, dass die Gleise in Wirklichkeit etwas anders liegen. Auf dem Plan sieht das so gequetscht aus. Wir haben noch mehr Trennstellen und Kontaktgleise eingebaut um auch einen Blockbetrieb zu realisieren. So soll es möglich sein auf dem 2. Bahnhofsgleis zu rangieren, während auf dem ersten Gleis zwei Züge […]

16.05.2015

integer overflow debugger trap

Filed under: Allgemein — Tags: , — Thomas @ 08:05

Benutzt man 16bit Integer statt 32bit um Speicher zu sparen und seine cache misses zu optimieren, läuft man Gefahr den Zahlenbereich von -32768 bis +32767 zu verlassen. So wie es für Floatingpoint Zahlen Überprüfungen auf over/underflow etc gibt, die ein Signal werfen bzw den Compiler anspringen lassen, so gibt es das auch für Integer. Ist […]

05.05.2015

Relais Flipflop

Filed under: Allgemein — Tags: , , — Thomas @ 22:05

Für das Gleisbildstellwerk brauchen wir Relais, da alles im 60er Jahre Style werden soll. Ein Flipflop hat zwei gültige Zustände, von denen es hin und her floppt. Wir können ein Flopflop mit nur einem Relais aufbauen, wie es das erste Bild zeigt: Einschalten funktioniert über S1, die Selbsthaltung über K1. Nur wie schaltet man aus? […]

2qm 2015 Gleisbildstellwerk 2

Filed under: Allgemein — Tags: , — Thomas @ 11:05

Auf Ebay haben wir ein altes Gleisbildstellwerk ersteigert und ausgeschlachtet. Etwa die Hälfte der Größe müsste uns langen. Mir kam noch die Idee ein Ampere und Voltmeter für je die Haupt- und Bergstecke einzubauen. So kann man schnell anliegende Spannungen und Ströme kontrollieren, fall die Lok sich mal nicht bewegen will. Die Instrumente im Bild […]

04.05.2015

storing into constants (Bug of the day 4)

Filed under: Allgemein — Tags: — Thomas @ 17:05

From the Layhey Fortran 95 compiler user guide. -[N]PCA Protext Constant Arguments Compile only. Default npca Specify -pca to prevent invoked subprograms from storing into constants. Example call sub(5) print *, 5 end subroutine sub(i) i = i + 1 end This example would print 5 using -pca and 6 using -npca. Greatest bullshit I've […]

Powered by WordPress