Content. Introduction to IPO.Plan s software Data model concept Worker Gantt View Material Zone Editor View Rack Planogram - View Live implementing



Similar documents
Programmers rejoice: QML makes business people understand. Qt Developer Days 2014 Hinrich Specht 2. September 2014 Folie 1

Best Practices in Qt Quick/QML. Langston Ball Senior Qt Developer ICS, Inc.

Qt Tips and Tricks. Integrated Computer Solutions Incorporated. Justin Noel and the ICS Team Oct 2010

Qt Signals and Slots. Olivier Goffart. October 2013

From the Desktop to the Mobile Cloud: Extending your Qt Widget Desktop Application as a Back-end Service

SAP PPM Portfolio Analysis Dashboard

New Qt APIs for Mobile Development. Mobility I Alex Blasche

7 th Meeting. February 01, Marius Dupuis / marius@vires.com. February 01, 2011 copyright note according to DIN 34 Slide 1

TeleTrusT European Bridge CA Status and Outlook

Implementação. Interfaces Pessoa Máquina 2010/ Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011

Replacing SDL with Qt/QML

DEVELOPING NFC APPS for BLACKBERRY

Validating Diagnostics in Early Development Stages

Software documentation systems

The first program: Little Crab

[PRAKTISCHE ASPEKTE DER INFORMATIK SS 2014]

2 The first program: Little Crab

Consulting. Planning. Managing.

Textbook: T. Issariyakul and E. Hossain, Introduction to Network Simulator NS2, Springer

ADSL / VDSL Low Pass Filter LCR Modules

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

CS193j, Stanford Handout #10 OOP 3

Kuwaiba Open Network Inventory

Pemrograman Dasar. Basic Elements Of Java

Visualization of C++ Template Metaprograms

CSC230 Getting Starting in C. Tyler Bletsch

Mutual Exclusion using Monitors

Help on the Embedded Software Block

An Architecture Concept for Mobile P2P File Sharing Services

HARTING Auto-ID System Integration

Comparative Market Analysis of Project Management Systems

Modelling and Simulation of Offshore Windfarms Mapping and Analysis of relevant O&M Processes Philip Joschko, Andi Widok, Bernd Page, Susanne Appel,

E-COMMERCE SOCIAL COMMERCE MOBILE STRATEGY CONSULTING DESIGN E-COMMERCE USABILITY DEVELOPMENT USER EXPERIENCE. CONCEPT E-Commerce from the first idea.

Realizing Enterprise Integration Patterns in WebSphere

Technical Paper. Call Completion (CCBS/CCNR) On Issue 1.0

Product Training Services. Training Options and Procedures for JobScheduler and YADE

Requirements for Standard Compliant Electrical Test Authoring in Manufacturing Applications

to confirm that its document management- and archiving solution fulfils all applicable audit criteria for document management solutions

Polymorphism. Problems with switch statement. Solution - use virtual functions (polymorphism) Polymorphism

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

RM410. Hardware Installation Guide. Quick Start Guide. Rack Mounting Kit. Version 1.00 Edition 1, 12/2012

Project 2: Character Animation Due Date: Friday, March 10th, 11:59 PM

Java CPD (I) Frans Coenen Department of Computer Science

Lean Production Systems Implementation in Germany

Creating a Custom Class in Xcode

ELEC 377. Operating Systems. Week 1 Class 3

Computing Concepts with Java Essentials

Automotive Application Questionnaire for Electronic Control Units and Sensors. Electronic Components and Systems

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Brief Information LAN/USB Interface. Art. no st edition, 10 11

Achieve great things with safety! Development Engineer Production Engineer Sales Engineer

5. Product Lifecycle Management. Database Technologies for Integrating Engineering Data

Concurrent programming in Java

automates system administration for homogeneous and heterogeneous networks

Beginning Nokia Apps. Development. Qt and HTIVIL5 for Symbian and MeeGo. Ray Rischpater. Apress. Daniel Zucker

IPA Industrial Process Automation From the Automatic Control of Individual Controlled Systems to Flexible, Full-scale Process Automation

EBERSPÄCHER ELECTRONICS automotive bus systems. solutions for network analysis

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

Office Automation. Industrial Automation. Information Technology and Automation Systems in Industrial Applications. Product Development.

BMW Car IT GmbH. AUTOSAR - First Experiences and the Migration Strategy of the BMW Group

Logging. Working with the POCO logging framework.

RS Components Available with Master Data Product Catalog in CADENAS PARTsolutions Availability of all digital product data from RS Components

Running a Program on an AVD

Special Publication. Operation and Monitoring of MSCDN-Systems

Getting Started with the Internet Communications Engine

Curriculum Map. Discipline: Computer Science Course: C++

CRM & xrm for consulting companies

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

History OOP languages Year Language 1967 Simula Smalltalk

Re-engineering and function testing at Handtmann Zittau WELCOME

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

17. November Übung 1 mit Swift. Architektur verteilter Anwendungen. Thorsten Kober Head Solutions ios/os X, SemVox GmbH

Integrated Model-based Software Development and Testing with CSD and MTest

Sequential Performance Analysis with Callgrind and KCachegrind

Documentation. OpenScape Office myreports. Communication for the open minded. User Guide A31003-P1000-U

BogDan Vatra and Andy Gryc. Qt on Android: Is it right for you?

: provid.ir

IQ MORE / IQ MORE Professional

With LOGIKA you realize higher targets with greater security, speed and efficiency

Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import

M a n a g e m e n t S y s t e m f o r P r o d u c t D a t a Q u a l i t y. Transcat PLM GmbH & Co. KG qce

PROVIDING SOLUTIONS IS OUR STRENGTH ELECTRICAL TECHNOLOGY

Report on Project: Advanced System Monitoring for the Parallel Tools Platform (PTP)

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Facts about ecodms. Facts about ecodms applord gmbh Vinzenz Hopfgartner 8. July 2010

Company Brief 4brands Reply GmbH & Co. KG

FISCHER DataCenter Software for Evaluating and Archiving Measurement Data FISCHER DataCenter IP Inspection plan Software for Quality Assurance

Signals and Slots in C++

Java Interview Questions and Answers

Sequential Performance Analysis with Callgrind and KCachegrind

Transcription:

Effizienzsicherheit Ensuring Efficiency in in der Factory Fabrik- and und Production Produktionsplanung. Planning Building complex QML-GUIs with QtQuick2

Content Introduction to IPO.Plan s software Data model concept Worker Gantt View Material Zone Editor View Rack Planogram - View Live implementing 3. Dezember 2014 2

Introduction to IPO.Plan s software Located in Leonberg (services) and Ulm (research and development department) 60 employees approximately Our process experts provide manifold services, supported by our homemade expert tools Main customers are Daimler AG, Siemens AG, Eisenmann GmbH & Co. KG, Liebherr GmbH 3. Dezember 2014 3

Introduction to IPO.Plan s software Software products made by IPO.Plan: Purely software Software + Hardware 3. Dezember 2014 4

Data model concept MVC-Concept Methods Signal/Slots Invokables Properties Signal/Slots Invokables Model ViewController View C++ BasicModels C++ SortFilterModel RepresentationModel CollectionModel Set needed context properties QML Possibility to implement Model-Behavior 3. Dezember 2014 5

Data model concept Model Using only one custom-defined data role ( objectrole ) Providing instance references directly to QML- Code by this role You have to inherit the QAbstractListModel Detailed description in attachments 3. Dezember 2014 6

Data model concept SortFilterModel Example Ascending index order Filter indices < 4 Model<T> T 4 T 3 T 1 T 2 SourceModel SortFilterModel<T> T 1 T 2 T 3 3. Dezember 2014 7

Data model concept RepresentationModel Example Use a type R to represent a single source instance Model<T> T 4 T 3 T 1 T 2 SourceModel RepresentationModel<R> R 4 R 3 R 1 R 2 Keep in mind that instances of R may already exists or be allocated by the RepresentationModel 3. Dezember 2014 8

Data model concept RepresentationModel Example 2 Use a type S to represent multiple source instances Model<T> T 4 T 3 T 1 T 2 SourceModel RepresentationModel<S> S 34 S 12 3. Dezember 2014 9

Data model concept CollectionModel Model<T> T 1 T 2 T 3 T 4 Model<U> U 1 U 2 U 3 U 4 SourceModel 1 SourceModel 2 Example Collect by a random criteria CollectionModel<R> U 1 R 1 U 2 R 2 U 3 R 3 U 4 R 4 T and U have to have the mutual super class R 3. Dezember 2014 10

Data model concept Combining models You can combine the mentioned models to create manifold behavior Just queue them in a model chain Later: RackPlanogram in IPO.Log Model 1 CollectionModel SortFilterModel View Model 2 3. Dezember 2014 11

Worker Gantt - View Worker Use a SortFilterModel for Products ProductLine Use a ListModel of Activities and ActivityGroups Activity ActivityGroup

Worker Gantt - View The hierarchy of the Worker Gantt - View WorkerGantt Worker ProductLine Activities and ActivityGroups 3. Dezember 2014 13

Material Zone Editor - View Area Contains all components in a simple ListModel ComponentOnArea ComponentOnAreaEdit ComponentOnAreaGroup Uses a SortFilterModel of selected Components 3. Dezember 2014 14

Rack Planogram - View Planogram PlanogramArea Uses a SortFilterModel to get all areas with PlanogramRackComponent selected components PlanogramRackInfoGrid PlanogramInfoGrid 3. Dezember 2014 15

Rack Planogram - View The hierarchy of the Rack Planogram - View Planogram PlanogramArea PlanogramRackComponent PlanogramRackInfoGrid PlanogramInfoGrid PlanogramBoxGroupComponent PlanogramBoxGroupInfoGrid PlanogramInfoGrid 3. Dezember 2014 16

We are hiring! If you are interested in our stuff are of course firm in Qt, QML are firm in C++, C#, Java or another language want to work in a young, creative and flexible team search for challenges looking for virtual reality, simulation and 3D graphic Maybe you can find the right job for you at IPO.Plan You are also welcome to our stand here at QtDeveloperDays 3. Dezember 2014 17

Sichtbar machen. Selber machen. Besser machen. 03.12.2014 18

Your contact person IPO.Plan GmbH Martin Lang E-Mail: martin.lang@ipoplan.de Office Ulm. Grünhofgasse 3 D-71229 Ulm Fon: +49.7152.70010.82 Fax: +49.7152.70010.99 Sichtbar machen. Selber machen. Besser machen. 03.12.2014 19

Your contact person IPO.Plan GmbH Dipl.-Ing. Dennis Effmert E-Mail: dennis.effmert@ipoplan.de Office Ulm. Grünhofgasse 3 D-71229 Ulm Fon: +49.7152.70010.82 Fax: +49.7152.70010.99 Sichtbar machen. Selber machen. Besser machen. 03.12.2014 20

Attachment: Data model concept DataModel.h class DataListModel : public QAbstractListModel { Q_OBJECT public: enum Roles {ObjectRole = Qt::UserRole + 1}; void append(qobject *newobject); QHash<int, QByteArray> rolenames() const; QVariant data(const QModelIndex &index, int role) const; protected: QList<QObject*> m_objects; } 3. Dezember 2014 21

Attachment: Data model concept DataModel.cxx void DataListModel::append(QObject *object) { begininsertrows(qmodelindex(), m_objects.count(), m_objects.count()); m_objects.append(object); // To observe the QObject::destroyed() signal if (m_tracking) trackobject(object); } endinsertrows(); 3. Dezember 2014 22

Attachment: Data model concept DataModel.cxx QHash<int, QByteArray> DataListModel::roleNames() const { QHash<int, QByteArray> roles; roles[datalistmodel::objectrole] = "object"; return roles; } 3. Dezember 2014 23

Attachment: Data model concept DataModel.cxx QVariant DataListModel::data(const QModelIndex &index, int role) const { if (index.row() < 0 index.row() >= m_objects.size()) return QVariant(); switch (role) { case ObjectRole: return QVariant::fromValue(m_objects.at(index.row())); } } return QVariant(); 3. Dezember 2014 24