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 […]
29.05.2015
warning: conversion to 'float' from 'int' may alter its value [-Wconversion] (Bug of the day 7)
2.1GB limit Qt Container (Bug of the day 6)
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)
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
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
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
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
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)
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 […]