===== ===== [ [[http://www.openhardsoftware.de | HomePage]] ] [ [[http://www.openhardsoftware.de/dokuwiki | DokuWiki]] ] [ [[http://www.openhardsoftware.de/dokuwiki/doku.php?id=las_-_laserareascanner | LAS - LaserAreaScanner]] ] ====== PC-Software(C#) : Glamma ====== ===== ToDo ===== ==== 2109140730 : Glamma ==== * **X** Separierte Version: **2109141530_Glamma_00V23_Separated** * **X** Entpflechtung des Hauptfensters: Auslagerung in **Uart.cs**, **UartTerminal.cs** und **LaserAreaScannerCommand.cs** * **X** Auslieferung: **2109141110_Glamma_00V22_BasicCommandsLAS** * **X** UCLaserAreaScannerCommand: Alle Commands bis auf Line... integriert ==== 2109131150 : Glamma / ADuelaserAreaScanner ==== * **X** Glamma: UartTerminal default Text BLS 200 5 * **X** Glamma: Add ColoredLine/Text / Rxd / Txd * **X** Korrektur BLS : **2109131147_ADueLaserAreaController_BLS** * **X** Reintegration ADueLaserAreaScanner in Glamma ==== 2109011351 : Aktuelle Version ==== * Grundlage: **1808301610_LASManager_06V25_PS** * aktuelle Version: **2108310940_LASManager_OldProjectRecoveredOk** * als Grundlage für Projekt **Glamma** ==== 21061538 - Auslieferung "Glamma_00V17" ==== * **X** Load Bitmap : nicht skalieren, Original-Grösse beibehalten, zentriert einladen, schieben, rotieren, skalieren beliebig. * **X** CutFrame : Transformation SourceBitmap -> 256x256 NormalizedBitmap ==== 2106141551 - Korrekturen, Besprechung FKleinwort==== * **X** Load Bitmap : nicht skalieren, Original-Grösse beibehalten, zentriert einladen, schieben, rotieren, skalieren beliebig. * **X** CutFrame : Transformation SourceBitmap -> 256x256 NormalizedBitmap * **O** Fehler nicht reproduzierbar?! nud <-> scb Correlation überprfen für grosse Zahlen * **O** Notwendig ??? Initdata <- Min/Maxwerte abspeichern/laden ==== 2106111052 - Auslieferung "Glamma_00V16" ==== * **X** **2106111130_Glamma_00V16_DeliveryPSJK.zip** nach Teams/Glamma speichern. * **X** **2106111130_Glamma_00V16_DeliveryPSJK_exe.zip** nach Teams/Glamma speichern. * **X** Aktuelle ToDo Datei nach Teams/Glamma speichern. ==== 2106110530 - Korrekturen ==== * **X** Initdata für alle Prozessgrössen verwalten. * **X** Initdata SelectFileDirectory last Directory speichern * **X** "Load Image" : nur Image-Files (bmp/png/gif/jpg) und Separation jedes Typs. ==== 2106100600 - Korrekturen ==== * **X** Seitenverhältnis beim Laden beibehalten, kürzere Seite bstimmt 256-Skalierung anpassen * **X** Seitenverhältnis beim Laden: Zusatz: Auswahl ShortSide / LongSide * **X** nudShowFileIndex enabled * **X** CutFrame GRÜN am Anfang und bei Änderung, nach Cut grau * **X** Button: File GammaFactor-User-Histogram laden (Xml) * **X** RadioButton: User-Histogram auswählen ==== 2106091150 - Besprechung PSimon, FKleinwort, OMaediger ==== Ergänzungen/Korrekturen: * **X** Initdata für alle Prozessgrössen verwalten. * **X** Initdata SelectFileDirectory last Directory speichern * **X** "Load Image" : nur Image-Files (bmp/png/gif/jpg) und Separation jedes Typs. * **X** Seitenverhältnis beim Laden beibehalten, kürzere Seite bstimmt 256-Skalierung anpassen * **X** Seitenverhältnis beim Laden: Zusatz: Auswahl ShortSide / LongSide * **X** Scrollbars im Hauptfenster bzw. im ImageProcessing-TabSheet * **X** SelectFileDialog verschwindet, Funktion nach ConvertToFile verschieben * **X** nudShowFileIndex enabled * **X** CutFrame GRÜN am Anfang und bei Änderung, nach Cut grau * **X** Button: File GammaFactor-User-Histogram laden (Xml) * **X** RadioButton: User-Histogram auswählen ==== 2106091116 - Ergänzungen/Korrekturen ==== * **X** Auslieferung 210609????_Glamma_00V16 * **X** Scrollbars im Hauptfenster bzw. im ImageProcessing-TabSheet * **X** Sicherung "2106091114_Glamma_00V15_pngpreinitdata" * **X** Laden von PNG-Files: Transparent-Color: immer zuerst Frame mit Hintergrundfarbe beschreiben. ==== 2106080445 - Ergänzungen/Korrekturen ==== * **X** Auslieferung 2106082047_Glamma_00V14 * **X** Auslieferung 2106082047_Glamma_00V14_exe * **X** BackColor bei FileIndex-Aktivierung auf aktuelle BackColor einstellen!!! * **X** "Save": Modaler Dialog Zielordner/Name. * **X** "Save": Info-Button mit (default-)Format. * **X** Gamma-Faktor: über Histogramm vorgebbar und als Xml-File ladbar und speicherbar. * **X** Fehler Graustufen-Konvertierung beseitigt (jetzt Mittelwert über alle Colors). * **X** BackColor Frame: Hintergrundfarbe zwischen weiss, schwarz und UserColor wählbar. * **X** Gamma-Faktor:     Linear $[0..255] \rarr [0..255]$     Inverse $[0..255] \rarr [255..0]$ ==== 2106070530 - Ergänzungen/Korrekturen ==== * **X** Glamma-Gui Visualisierung: TabSheets von unten nach oben verlegen. * **X** Glamma-Gui Visualisierung: Bedienungs-Buttons von unter dem Image nach links neben dem Image. * **X** "CutFrame" bzw. "Load": Hintergrundfarbe default weiss, wählbar schwarz, beliebig. * **X** Gui-Row "Convert to File 2048x256" herausnehmen. * **X** top! "ShowFileIndex".checked -> unchecked bei anderer Aktion!. ==== 2106021000 - Besprechung Ergänzungen/Korrekturen PSimon/FKleinwort/OM ==== ** Korrekturen:** * **X** Bilder-Sequenz speichern: letztes Bild fehlt. * **X** Laden von PNG-Files: Transparent-Color: immer zuerst Frame mit Hintergrundfarbe beschreiben. **Ergänzungen:** * **X** Glamma-Gui Visualisierung: TabSheets von unten nach oben verlegen. * **X** Glamma-Gui Visualisierung: Bedienungs-Buttons von unter dem Image nach links neben dem Image. * **X** "CutFrame" bzw. "Load": Hintergrundfarbe default weiss, wählbar schwarz, beliebig. * **X** "Save": Modaler Dialog Zielordner/Name. * **X** "Save": Info-Button mit (default-)Format. * **X** Gamma-Faktor Color: $C_{out} = C_{in} ^ \gamma$ mit $\gamma \in (0, 2) \in \mathbb{R}$ * **X** Gamma-Faktor Color: über Histogramm vorgebbar. * **X** Gui-Row "Convert to File 2048x256" herausnehmen. ==== 2106010230 - Auslieferung Glamma_00V11 PSimon/FKleinwort ==== * **X** Teams-Sendung an PSimon und FKleinwort: "2106011135_Glamma_00V11_DeliveryPSFK_exe.zip" * **X** Laden von BitmapSources vom "source"-Ordner als SubOrdner des Working-Directory. * **X** Speichern der SequenceColumnBitmaps im "result"-Ordner als SubOrdner des Working-Directory. * **X** Schnelle PreVisualisierung aller SequenceColumnBitmaps über State-Checkbox "Show FileIndex" mit Scrollbar und NumericUpdown. * **X** Damit 1. Aufgabe: "Glamma - ImageProcessing" erledigt! ==== 210531xxxx - Aktuelle Aufgaben ==== * **X** Image2048x256 aus k-ter Spalte BitmapNormalized berechnet. * **X** Image2048x512 aus k-ter Spalte BitmapNormalized berechnet. * **X** für alle Spalten Folge Image2048x256_000.bmp .. Image2048x256_255.bmp mit StartIndex, EndIndex und IndexInterval berechnet und gespeichert. * **X** für alle Spalten Folge Image2048x512_000.bmp .. Image2048x512_255.bmp mit StartIndex, EndIndex und IndexInterval berechnet und gespeichert. ==== 2105280630 - Aktuelle Aufgaben ==== * **X** Aus Bild mit 256/512 Spalten 256 Einzelbilder berechnen. ==== 2105270830 - Aktuelle Aufgaben ==== Lösung: X Scale: um Center der BitmapSource scalen. X Rotate: um Center der BitmapSource rotieren. X Translate: Offset X/Y für Center der BitmapSource. X CutFrame: BitmapSource -(Transformation)-> BitmapNormalized -(CutFrame)-> BitmapProjection. ==== 2105260830 - Aktuelle Aufgaben ==== Lösung: X Graphics.DrawImage OHNE Interpolation pixelgenau darstellen. ==== 2105250630 - Aktuelle Aufgaben ==== Aufgaben: * **X** Aus jeder Spalte SourceBitmap 256x256 ein Einzelbild berechnen:    Column $C_k$ mit $k \in [0, 1, 255]$ 256-fach duplizieren, jede $C_k$ ergibt neues Einzelbild $P_k$ im Format $2048 \cdot C_k$, daher 256 Einzelbilder. * **X** In $P_k$ jede Zeile $R_l, l \in [0, 1, 255]$ duplizieren,    ergibt aus $P_k$ 256-mal das Format $Q_k$ mit $2048 \cdot 512$. ==== 2105191100 - Besprechung PSimon/FKleinwort Image-Preprocessing ==== * **X** Drei Tasten: Load, Convert, Save $\rarr$ Scrollbars * **X** Vor Convert: Frame256x256 fixed auf 512x512PictureBox * **X** Linke Maustaste: MoveXY $\rarr$ Scrollbars * **X** Mausrad: ZoomIn/Out $\rarr$ Scrollbars * **X** Convert: Aktuelle Sicht im Frame $\rarr$ resultierende (Source-)Bitmaps * **X** weisse Ränder: als weisse Pixel konvertieren == keine Bearbeitung! ==== 2105190800 - Gui : Image24b-Dll ==== * **X** Converting to: 256x256 pixel2, 512x256 pixel2, 4096x256 pixel2. * **X** Converting to: 256x512 pixel2, 512x512 pixel2, 4096x512 pixel2. * **X** Buttons Column2048x256 und Column2048x512: mit Scrollbar Column0..255 auswählen und anzeigen! ==== 2105180700 - Gui : Image24b-Dll ==== * **X** Laden von beliebigen Bitmaps. * **X** XY-Sizing auf 256x256 pixel2, 24bit RGB. ==== 2105110916 - Gui : Module-Main/Dlls ==== Basic-Module: * **X** Eigenschaften der Initdata-Dll aus aktuellen C#-Projekten übernehmen. * **X** Eigenschaften der Programdata-Dll aus aktuellen C#-Projekten übernehmen. Helper-Module: * **X** Eigenschaften der Task-Dll aus aktuellen C#-Projekten übernehmen. * **X** Eigenschaften der TextFile-Dll aus aktuellen C#-Projekten übernehmen. * **X** Neu-Generierung der Image24b-Dll speziell für Glamma-Funktionen. UCBasic-Module: * **X** Eigenschaften der UCNotifier-Dll aus aktuellen C#-Projekten übernehmen. * **X** Eigenschaften der UCSerialNumber-Dll aus aktuellen C#-Projekten übernehmen. * **X** Eigenschaften der UCTextEdito-Dll aus aktuellen C#-Projekten übernehmen. UCGlamma-Module: * **X** Neu-Generierung der UCImageProcessing-Dll speziell für Glamma-Funktionen. * **X** Neu-Generierung der UCLaserAreaScanner-Dll speziell für Glamma-Funktionen. * **X** Neu-Generierung der UCLowLevelMMA-Dll speziell für Glamma-Funktionen. * **X** Neu-Generierung der UCHighLevelMMA-Dll speziell für Glamma-Funktionen. * **X** Neugenerierung des Main-Module Glamma.Exe . ==== 2105071000 - Gerüst der Glamma-Software ==== Rahmen: * programmiert mit Visual Studio 2019 in C# als Exe-File, * programmiert für alle Windows10 Betriebssysteme, * alle Sources sind offengelegt, * modulare Top-Down-Architektur, * alle Module als Dlls, ==== 2105061400 - Spezifikation der Rahmenbedingungen ==== WebMeeting mit PK (Peter Simon), FK (Frederick Kleinworth) und OM (Olaf Maediger) über die Machbarkeit der Glamma-Software. Ergebnisse: * Die vier von FK aufgeführten Punkte werden als Punkt1 und Punkt3 zuerst allein von OM programmiert. * Die Punkte 2 und 3 unterstützt OM mit Code-Fragmenten, welche von einer weiteren Person (hier genannt WP) WP im Labor zusammengeführt, unter Laborbedingungen ergänzt, getestet und verifiziert werden. Dabei besteht ein aktiver Gedankenaustausch zwischen OM und WP über WebMeeting.