Book Image

Hands-On Mobile and Embedded Development with Qt 5

By : Lorn Potter
Book Image

Hands-On Mobile and Embedded Development with Qt 5

By: Lorn Potter

Overview of this book

Qt is a world-class framework, helping you to develop rich graphical user interfaces (GUIs) and multi-platform applications that run on all major desktop platforms and most mobile or embedded platforms. The framework helps you connect the dots across platforms and between online and physical experience. This book will help you leverage the fully-featured Qt framework and its modular cross-platform library classes and intuitive APIs to develop applications for mobile, IoT, and industrial embedded systems. Considerations such as screen size, device orientation changes, and small memory will be discussed. We will focus on various core aspects of embedded and mobile systems, such as connectivity, networking, and sensors; there is no IoT without sensors. You will learn how to quickly design a flexible, fast, and responsive UI that looks great. Going further, you will implement different elements in a matter of minutes and synchronize the UI elements with the 3D assets with high precision. You will learn how to create high-performance embedded systems with 3D/2D user interfaces, and deploy and test on your target hardware. The book will explore several new features, including Qt for WebAssembly. At the end of this book, you will learn about creating a full software stack for embedded Linux systems using Yocto and Boot to Qt for Device Creation.
Table of Contents (23 chapters)
Title Page
Dedication
About Packt
Foreword
Contributors
Preface
Index

Tuning it in – FM radio tuner


Some Android phones have an FM radio receiver. Mine does! It requires the wired headphones to be inserted to work as the antenna. 

We start by implementing a Radio component:

Radio {
    id: radio

The Radio element has a band property that you can use to configure the radio's frequency band use. They are one of the following:

  • Radio.AM : 520 - 1610 kHz
  • Radio.FM : 87.5 - 108 MHz, Japan 76 - 90 MHz
  • Radio.SW : 1.711 to 30 MHz
  • Radio.LW : 148.5 to 283.5 kHz
  • Radio.FM2 : Range not defined
    band: Radio.FM
    Component.onCompleted {
        if (radio.availability == Radio.Available)
            console.log("Good to go!")
        else 
           console.log("Sad face. No radio found. :(")
    }
}

The availability property can return the following different values:

  • Radio.Available
  • Radio.Busy
  • Radio.Unavailable
  • Radio.ResourceMissing

 

 

The first thing the user will do with a radio is scan for stations, which can be accomplished by using the searchAllStations method, which takes one...