/**************************************************************************** ** ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \example pingpong \title Bluetooth QML Ping Pong example \brief A QML example showing Bluetooth communication. The Bluetooth QML Ping Pong example presents the socket communication between two Bluetooth devices. The basic concept is the ping pong game where two players communicate via sockets. \image intro.png \include examples-run.qdocinc At the beginning, the user selects the role. One device acts as a server and the second one as a client. After selecting the role, adjustments to the screen size are done (two devices might have different screen sizes). The server side starts a service named "PingPong server". \snippet pingpong/pingpong.cpp Starting the server On the client side, the full service discovery on the nearby Bluetooth devices is done. \snippet pingpong/pingpong.cpp Searching for the service When the ping pong service is discovered, the client connects to the server using the socket. \snippet pingpong/pingpong.cpp Connecting the socket On the server side, the connected signal is emitted initiating that the client is connected. The necessary signals and slots on the server side are connected. \snippet pingpong/pingpong.cpp Initiating server socket The game starts after the devices are connected and the screen is adjusted. \snippet pingpong/pingpong.cpp Start the game The server updates the ball direction and coordinates. The coordinates of pedals are sent to each other every 50ms. \snippet pingpong/pingpong.cpp Updating coordinates The coordinates are updated and exchanged via sockets. As presented, the server sends its pedal's y coordinate and the ball coordinates whereas, the client sends only its pedal y coordinate. \snippet pingpong/pingpong.cpp Checking the boundaries In the code above, it was shown how the server checks whether the ball has reached the boundaries of the board. In the case of the goal, the server updates the results via its socket. \image intro1.png */