Patent ID: 12256786

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Referring toFIG.1, according to a first embodiment, in a communication network100a personal computing device104is in communication with one or more aerosol generation devices102(each of which is a consumer apparatus). In the illustrated embodiment, the personal computing device104is potentially in communication with four aerosol generation devices102. A communication link between the personal computing device104and each aerosol generation device102is a short-range wireless communication connection116. In the present embodiment, this short-range wireless communication connection116is a Bluetooth® connection. In other embodiments, the short-range wireless communication connection116is a connection implemented using one or more of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (Wi-Fi®), an Infrared (IR) wireless connection, a ZigBee® connection or some other similar connection. In one particular embodiment, the short-range wireless communication connection is a Near-field Communication (NFC) connection. NFC employs electromagnetic induction between two loop antennas. NFC-enabled devices, e.g. the personal computing device104and the aerosol generation device102, exchange information using a globally available unlicensed radio frequency band, e.g. the industrial, scientific and medical (ISM) band of 13.56 MHz. NFC communication is defined by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) Joint Technical Committee (JTC). The ISO/IEC 18000-3 standard achieves rates ranging from 106 to 424 kbit/s. The reference to “short-range” in the context of the short range wireless communication connections116therefore means capable of being maintained over a few metres, for example up to around 100 metres but usually less than 10 metres and, indeed, in the context of NFC for example, less than 10 cm or even just up to 4 cm.

The personal computing device104is also in communication with a remote server114via the Internet112. In the present embodiment, the personal computing device104is arranged to communicate with the Internet112via an access point110. The personal computing device104is arranged to communicate with the access point110via another short-range wireless communication connection118. This other short-range wireless communication connection118is a Wi-Fi® connection in the present embodiment. In other embodiments, the other short-range wireless communication connection118is a Bluetooth® connection, IR wireless connection, ZigBee® connection or some similar connection. In the present embodiment, the personal computing device104is also arranged to communicate with the Internet112via a cellular radio network link120using an appropriate communication standard, such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS) or Long-Term Evolution (LTE), to provide data communication. The personal computing device104typically selects to communicate with the Internet112from time to time via the other short-range wireless communication connection118and the access point110or via the cellular radio network link120, depending upon availability and other criteria and preferences.

In the present embodiment, the personal computing device104is a mobile computing device, in particular a smartphone running the Android® operating system. In other embodiments, the personal computing device104is a smartphone, tablet computing device or laptop computer running any other type of operating system such as iOS, Linux or Windows for mobile OS. In most embodiments, the personal computing device104is arranged to communicate via the cellular radio network link120and as such the personal computing device104can be referred to as User Equipment (UE). In other embodiments, the personal computing device104is a desktop Personal Computer (PC) configured to communicate via the Internet112via a wired Ethernet connection. In such an embodiment, the Ethernet connection is effectively similar to the other short-range wireless connection118, in that it connects, albeit via a fixed line or wired connection rather than a wireless one, to the access point110, e.g. in the form of a broadband modem or the like, and thence on to the Internet112.

Referring toFIG.2, in common with a general electronic consumer apparatus, each aerosol generation device102comprises a Central Processing Unit (CPU)202, memory204, storage206, communication interface208, antenna210and a user interface212in communication with one another via a communication bus214.

The aerosol generation device102also has aerosol generation components, in particular a heating element216and a consumables module218which includes, in the present embodiment, a detector219for detecting when a suitable consumable item217has been inserted into the consumables module218. Note that in the present embodiment, the consumable item217is in the form of a tobacco rod or stick as described in greater detail below and includes a mouthpiece, e.g. a filter such as an acetate or through hole filter as commonly used in cigarettes. It should be noted, however, that several of the methods described below are applicable to other types of consumer apparatus, which typically have the computer related components but not the aerosol generation components of the aerosol generation device102. It should therefore be understood that, in the context of those methods, the described aerosol generation device102is just one example of an appropriate consumer apparatus for use with the methods.

The CPU202is a computer processor, e.g. a microprocessor. It is arranged to execute instructions, e.g. in the form of computer executable code, and to process data, e.g. in the form of values and strings, including instructions and data stored in the memory204and the storage206. The instructions and data executed by the CPU202include instructions for coordinating operation of the other components of the aerosol generation device102, such as instructions and data for controlling the communication interface208and the user interface212.

The memory204is implemented as one or more memory units providing Random Access Memory (RAM) for the aerosol generation device102. In the illustrated embodiment, the memory204is a volatile memory, for example in the form of an on-chip RAM integrated with the CPU202using System-on-Chip (SoC) architecture. However, in other embodiments, the memory204is separate from the CPU202. The memory204is arranged to store the instructions and data executed and processed by the CPU202. Typically, only selected elements of the instructions and data are stored by the memory204at any one time, which selected elements define the instructions and data essential to the operations of the aerosol generation device102being carried out at the particular time. In other words, the instructions and data stored transiently in the memory204whilst some particular process is handled by the CPU202.

The storage206is provided integrally with the aerosol generation device102, in the form of a non-volatile memory. The storage206is in most embodiments embedded on the same chip as the CPU202and the memory204, using SoC architecture, e.g. by being implemented as a Multiple-Time Programmable (MTP) array. However, in other embodiments, the storage206is an embedded or external flash memory, or such like. The storage206stores the instructions and data executed and processed by the CPU202. The storage206stores the instructions and data permanently or semi-permanently, e.g. until overwritten. That is, the instructions and data are stored in the storage206non-transiently. Typically, the instructions and data stored by the storage206relates to instructions fundamental to the operation of the CPU202, communication interface208, user interface212and the aerosol generation device102more generally, as well as to applications performing higher-level functionality of the aerosol generation device102.

The communication interface208supports short-range wireless communication, in particular Bluetooth® communication. The communication interface208is configured to establish the short-range wireless communication connection116with the personal computing device104. The communication interface208is coupled to the antenna210, via which antenna210wireless communications are transmitted and received over the short range wireless communication connection116. It is also arranged to communicate with the CPU202via the communication bus214.

The user interface212comprises a display220and input device222. In this embodiment, the display220is a plurality of separate indicators, such as Light Emitting Diodes (LEDs). In other embodiments, the display220is a screen, such as a Thin-Film-Transistor (TFT) Liquid Crystal Display (LCD) display or an Organic Light Emitting Diode (OLED) display, or other appropriate display. The input device222is one or more user operable buttons, responsive to depression, toggling or touch by the user. The user interface212, is arranged to provide indications to the user, under the control of the CPU202, and to receive inputs from the user, and to convey these inputs to the CPU202via the communications bus214.

The aerosol generation device102may be described as a personal inhaler device, an electronic cigarette (or e-cigarette), a vaporiser or vaping device. In one particular embodiment, the aerosol generation device102is a Heat-not-Burn (HnB) device. All of these devices generally heat or warm an aerosolisable substance to generate an aerosol for inhalation, as opposed to burning tobacco as in conventional tobacco products.

In more detail, the aerosol generation device102is configured to heat a consumable item217inserted into the consumables module218, using the associated heating element216to produce an inhalable aerosol or vapour for a user to inhale. The consumables module218, in the present embodiment, is intended to receive a consumable item217in the form of a rod which contains processed tobacco material (e.g. a crimped sheet or oriented strips of Reconstituted ToBacco (RTB) paper impregnated with a liquid aerosol former). The liquid aerosol former in the present embodiment comprises Vegetable Glycerin (VG) but may be a mixture of Propylene Glycol (PG) and VG or other humectants, e.g. vegetol (13 propanediol), the use of which in the present embodiment may be advantageous as it performs well in nicotine containing aerosol formulations over a range of different temperatures of the heating element; since the present embodiment provides the possibility for the user to adjust operating temperatures in a convenient manner the use of such humectants which perform well over a range of operating temperatures is beneficial. It should be noted that this advantage applies to all sorts of embodiments (e.g. liquid vaporising e-cigarettes as well as heat not burn type devices) and thus the advantageous use of vegetol is not limited to any particular type of aerosol generating device. In the present embodiment, the consumable item217uses pure VG, which does not contain any flavourings or nicotine. Instead, volatile flavourings and nicotine derived from the RTB are vapourised at the same time as the aerosol former and is entrained into the resulting condensation aerosol for inhalation by the user. However, in other embodiments, the consumable item217has aerosol former containing nicotine and other flavourings. In such cases the consumable item217typically contains other solid porous matter to absorb the aerosol former liquid, for example a mousse formed with a gelling agent and a suitable binder which may or may not contain tobacco.

The consumables module218has a detector219for detecting the consumable item217inserted into the consumables module218. The detector219is operable to identify a type of the consumable item217inserted into the consumables module218and to determine if the inserted consumable item217is appropriate for use in the aerosol generation device102. In the present embodiment, the consumables module218achieves this by detecting an indicium (e.g. a printed bar code or an RFID chip or an NFC tag etc.) on the consumable item217.

In an alternative embodiment, the consumable item217is a capsule containing aerosol former stored in a reservoir and having a vaporisation chamber whereby liquid from the reservoir is heated by the heating element216(e.g. via a wick or via a heat transfer element or via a dosing element which transports a small dosage of liquid aerosol former to a heated vaporisation surface which is heated by the heating element216, etc.). Preferably the aerosol former comprises VG or a PG/VG mixture together with nicotine and/or flavourings.

In another alternative embodiment, the aerosol generation device102does not include the heating element216, but instead provides power to the consumable item217, which itself contains a heating element (e.g. the consumable item is a “cartomiser”). In such case the cartomiser includes a liquid reservoir for storing the aerosol former, which is again preferably formed of VG or a PG/VG mixture together with nicotine and/or flavourings.

It is also possible that the aerosol generation device102further includes a capsule downstream of the cartomiser or vaporisation chamber, which capsule contains processed tobacco granules which impart flavour and/or nicotine to the condensation aerosol as it passes through the capsule before exiting the aerosol generation device102for inhalation by a user.

The aerosol generation device102is configured to run a plurality of software modules. The software modules include an operating system226, a short-range wireless communication controller228and a heating element controller230. Each of the software modules comprises a set of instructions for performing one or more functions of the aerosol generation device102. The instructions are provided in the form of computer executable code stored in the storage206and/or the memory204, and processed by the CPU202, communication interface208and user interface212.

In the present embodiment, the operating system226is an embedded or a real time operating system. Such operating systems are optimised to reduce delays and to allow for a better user experience. The operating system226manages the basic functioning of the hardware of the aerosol generation device102and operational interactions between the hardware components of the aerosol generation device102and software modules.

The short-range wireless communication controller228is primarily configured to control the communication interface208. It is operable to establish the short-range wireless connection via the communication interface208. In the present embodiment, the short-range wireless communication connection is a Bluetooth® connection. Consequently, the short-range wireless communication controller228includes instructions in accordance with the Bluetooth® wireless communication standards, as available at www.bluetooth.org, with Bluetooth 5.0 being the currently prevailing specification.

The heating element controller230is configured to control the heating element216. It is operable to monitor the amount of energy and the power (i.e. rate of energy) supplied to the heating element216and the temperature of the heating element216(preferably by monitoring the resistance of the heating element216, which is known to vary in a predetermined way with the temperature of the heating element216). In particular though, in the present embodiment, the heating element controller230is configured to receive commands to disable or enable the use of the heating element216. (Note that in embodiments where the aerosol generation device102does not itself include a heating element216but instead supplies power to a heating element within a consumable item217(e.g. a cartomiser) then the heating element controller230instead controls the supply of power to the heating element contained within the consumable item217).

Referring toFIG.3, the personal computing device104comprises a CPU302, memory304, storage306, removable storage308, communication interface310, antenna312and user interface314in communication with one another via a communication bus316.

The CPU302is a computer processor, e.g. a microprocessor. It is arranged to execute instructions, e.g. in the form of computer executable code, and to process data, e.g. in the form of values or strings, including instructions and data stored in the memory304, storage306and removable storage308. The instructions and data executed and processed by the CPU302include instructions and data for coordinating operation of the other components of the personal computing device104, such as the communication interface310and the user interface314. They also include instructions and data for running applications on the personal computing device104.

The memory304is implemented as one or more memory units providing RAM for the personal computing device104. In the illustrated embodiment, the memory304is a Dynamic RAM (DRAM) memory chip integrated on a motherboard of the personal computing device104alongside the CPU302. However, in other embodiments, the memory304is provided differently, for example in an integrated package with the CPU302or as plug-in memory unit. The memory304is arranged to store the instructions and data executed and processed by the CPU302. Typically, only selected elements of the instructions and data are stored by the memory304at any one time, the selected elements defining the instructions and data relating to the operations of the personal computing device104being carried out at the particular time. In other words, the instructions and data are stored transiently in the memory304whilst some particular process is handled by the CPU302.

The storage306is provided integrally with the personal computing device104, in the form of a non-volatile memory. The storage306comprises a memory unit, usually including a Read Only Memory (ROM), flash memory and or a cache memory, integrated on the motherboard of the personal computing device104. Removable storage308is also provided in the illustrated embodiment, although this is optional. The removable storage308is again a non-volatile memory, typically in the form of a micro Secure Digital (SD) card or some other portable flash memory device. The storage306and removable storage308are arranged to store the instructions and data used by the personal computer device104. The storage306and removable storage308stores the instructions and data permanently or semi-permanently, e.g. until overwritten. Typically, the elements of the computer instructions and data stored by the storage306and removable storage308comprise instructions and data essential to basic operation of the personal computing device104, as well as instructions and data relating to applications installed or installable on the personal computing device104, including those that perform the methods described below.

The communication interface310comprises a short-range wireless communications interface and a cellular radio communications interface, and is coupled to the antenna312. The short-range wireless interface is configured to establish the short-range wireless communication116, for example the Bluetooth® connection, with the aerosol generation device102, and to establish the other short-range wireless communication connection118, for example the Wi-Fi® connection, with the access point110. The cellular radio communications interface is configured to establish the cellular radio communication connection120to the Internet112using appropriate protocols previously discussed. As such, the communications interface210comprises one or more wireless modems suitable for supporting the different communication connections116,118,120(seeFIG.1). In another embodiment, the communication interface310also comprises a wired communication interface. The wired communication interface may be used to provide a wired communication connection, for example an Ethernet or Universal Serial Bus (USB) connection (not shown), to the access point110.

The user interface314comprises a display318and an input device320. In the present embodiment, the display318and the input device320are implemented together as a touch sensitive screen. The display318is a Thin-Film-Transistor (TFT) Liquid Crystal Display (LCD) display or an Organic Light Emitting Diode (OLED) display, or other appropriate display. The input device320is a capacitive layer provided over the display318, arranged to detect touch by the user. The user interface314is arranged to display information to the user under the control of the CPU302and to convey input from the user, derived from the user touching the input device320, to the CPU302via the communication bus316.

The personal computing device104is configured to run a plurality of software modules. The software modules include an operating system328, a web browser324, a native application326, Progressive Web Application (PWA)328and a wireless communication controller330. Each of the software modules comprises a set of instructions for performing one or more functions of the personal computing device104. The instructions are provided in the form of computer executable code stored in the storage306, removable storage308and/or the memory304, and processed by the CPU302, communication interface310and user interface314.

In the present embodiment, the personal computing device104is a smartphone whose operating system322is an Android® operating system. However, several other operating systems are suitable as alternatives, such as Apple® iPhone® OS (iOS) and Microsoft® Windows® 10. The operating system322manages the basic functioning of the hardware of the personal computing device104and operational interactions between the hardware components of the personal computing device104and software modules.

The web browser324is configured to download and process web resources from the Internet112, and to render them on the display318where appropriate. The web browser324is also configured to cache downloaded web resources in the memory304and storage306of the personal computing device104. Typically, the web browser324downloads HyperText Markup Language (HTML), JavaScript, Cascading Style Sheet (CSS), and image files. These web resources are processed to display information, such as web pages, on the display318of the user interface314. In the present embodiment, the web browser324is Google® Chrome®, but this is not essential and in other embodiments the web browser is, e.g., Safari®, Firefox® or Microsoft® Edge®. Alternatively, the web browser324may be a web browser designed specifically for handling PWAs, offline web pages, or other web based technologies, such as Electron™ developed by GitHub®.

The web browser324has browser storage332. Physically, the browser storage332is effectively a part of the memory304or storage306. However, more importantly, the operating system322and web browser324are configured to provide the browser storage332as a portion of memory having certain operating characteristics. Specifically, browser storage332is storage in which stored data persists after a session of the web browser334ends or after the web browser334stops its execution. In some embodiments, browser storage332is implemented as web storage, as the term is understood under, say, the Hypertext Markup Language 5 (HTML5) standard. More specifically, the browser storage332is local storage. Local storage data (unlike cookies) is not automatically transmitted to a web server in every request or interaction with the web server and cannot be written to directly by the web server. Local storage is distinguished from session storage, which is per-origin-per-window-or-tab and does not persist after the session is over, or the tab or window closed. Local storage is available, for example, in HTML5. The browser storage332is, in this embodiment, stored within files of the web browser334(e.g. files storing user preferences and other configurations, etc.).

The native application326is configured to manage running of the web browser324and the PWA328. In particular, the native application326is arranged to modify the functionality of the web browser324so that it can handle calls made by the PWA328for communication to the aerosol generation device102via the short-range wireless communication connection116. In the present embodiment, this is achieved by the native application326providing a resource, e.g. code such as Javascript and/or Swift code. The resource specifies how calls generated within the web browser324by the PWA328, e.g. using a Web Bluetooth® Application Programming Interface (API), should result in corresponding commands processed by the native application326, e.g. using a Bluetooth® API. The commands are configured to cause the wireless communication controller320to perform certain operations, e.g. setting up the short-range wireless communication connection116(e.g. a Bluetooth® connection) or transmitting or receiving messages over the short-range wireless communication connection116. In this way, the native application326provides seamless communication between the PWA328and the wireless communication controller330.

It will be appreciated that the native application326generally has access to hardware and peripherals of the personal computing device104via the operating system322. The hardware and peripherals include the communication interface310, storage306, removable storage308and user interface314, as well as cameras, microphones etc. (not shown). The native application326can therefore provide communication between the PWA328and other hardware and peripherals of the personal computing device104, not just the communication interface310.

The native application326is typically programmable using a Software Development Kit (SDK). By using the appropriate SDK, it is possible to configure the native application326to have the functionality described above. In particular, it possible to configure the native application326to interface with the operating system322and the appropriate software drivers so as to control the hardware and peripherals of the personal computing device104as required, and to provide the resource to the web browser324.

The web browser324is configured to download, store, and run the PWA328. The PWA328typically comprises HyperText Markup Language (HTML), JavaScript, Cascading Style Sheet (CSS), JavaScript Object Notation (JSON), eXtensible Markup Language (XML), image files or any other files of the PWA328. The files of the PWA328, e.g. in the form of instructions and data, are initially downloaded from the web server422of the remote server114and thereafter stored in the browser storage332. In an alternative embodiment, the files of the PWA328are stored elsewhere in storage306, memory304, and/or a cache of the CPU302.

In general, PWAs provide a way for users to benefit from similar functionality to that provided by native applications. However, PWAs are limited in that they cannot necessarily access certain functions, data structures and interfaces of the personal computer devices on which they may run. For example, ways of accessing some functions, data structures and interfaces of the personal computer device104are defined in the SDK for the native application326, and are not accessible via the web browser324on which the PWA328runs. In some instances, indirect access to certain hardware and peripherals is still possible to for PWAs via through Web APIs. However, there are many exceptions to this, and the utility of Web APIs varies from device to device. In particular, even though the PWA328is configured to receive messages or data received at the personal computing device104via the Web Bluetooth® API and similarly to transmit messages or data to the aerosol generation device102connected to the personal computing device102via the Bluetooth® Web API, this will not be effective unless the personal computing device102is configured to function with the Web Bluetooth® API. This configuration is provided by the native application326.

The wireless communication controller330is primarily configured to control the communication interface310. It is operable to establish the short-range wireless connection116via the communication interface310. In the present embodiment, the short-range wireless communication connection116is a Bluetooth® connection. Consequently, the wireless communication controller330includes instructions in accordance with the Bluetooth® wireless communication standards, as available at www.bluetooth.org, with Bluetooth 5.0 being the currently prevailing specification.

The wireless communication controller330includes any necessary hardware drivers for controlling the Bluetooth® module (which is part of the communication interface310) as well as the Android® Bluetooth® API by which the native application326can access and control the Bluetooth® module of the communication interface310(e.g. in response to a call to the Web Bluetooth® API by the PWA328).

Referring toFIG.4, the remote server114comprises a CPU402, memory404, storage406, a user database408, communication interface(s)410and user interface412in communication with one another via a communications bus414.

The CPU402is a computer processor, e.g. a microprocessor. It is arranged to execute instructions, e.g. in the form of computer executable code, and to process data, e.g. in the form of values and strings, including instructions and data stored in the memory404and storage406. The instructions and data executed and processed by the CPU402include instructions and data for coordinating operation of the other components of the remote server114, such as the user database108, communication interface410and user interface412. They also include instructions and data for running applications on the remote server114.

The memory404is implemented as one or more memory units providing RAM for the remote server114. In the illustrated embodiment, the memory404is a DRAM memory unit mounted to a motherboard of the remote server114alongside the CPU402. However, in other embodiments, the memory404is provided differently, for example as a memory chip integrated with the motherboard or the CPU402. The memory404is arranged to store the instructions and data executed and processed by the CPU402. Typically, only selected elements of the instructions and data are stored by the memory404at any one time, the selected elements defining the instructions and data relating to the operations of the remote server114being carried out at the particular time. In other words, the instructions and data are stored transiently in the memory404whilst some particular process is handled by the CPU402.

The storage406comprises a hard disk drive or flash drive mounted in the remote server114or as a separate storage unit accessible to the remote server114. The User database408may be implemented with the storage. That is, the user database408is typically a part of the storage406, e.g. data stored by the storage. However, in other embodiments, the user database408is separate from the storage, e.g. comprising a separate hard disk drive or storage unit. The storage406is arranged to store the instructions and data used by the remote server114. The storage406stores the instructions and data permanently or semi-permanently, e.g. until overwritten. Typically, the elements of the instructions and data stored by the storage406comprises instructions and data essential to basic operation of the remote server114, as well as instructions and data relating to applications installed or installable on the remote server, including those that perform the methods described below. The user database408is configured to store information relating to users that own, or have owned, one or more of the aerosol generation device(s)102, along with configuration information relating to the users and the aerosol generation devices102.

The communications interface410comprises a wired communication interface that is configured to connect to the Internet112. The wired communication interface typically connects to the Internet112via an access point (not shown) and an Internet Service Provider (ISP), for example via an Ethernet or Universal Serial Bus (USB) connection (not shown), and a suitable modem.

The user interface412comprises a display416and an input device418. In the present embodiment, the display416is a computer monitor and the input device418is a keyboard and mouse.

The remote server114is configured to run a plurality of software modules. The software modules include an operating system420and a web server422. Each of the software modules comprises a set of instructions and data for performing one or more functions of the remote server114. The instructions, e.g. provided in the form of computer executable code, and the data, e.g. in the form of values or strings, are stored in the memory404and storage406, and executed or processed by the CPU402.

In the present embodiment, the operating system420is a server optimised operating system, such as those provided by Linux® and Microsoft® Windows®. The operating system420manages the basic functioning of the hardware of the remote server114and operational interactions between the hardware components of the remote server114and the software modules. In some embodiments, the web server422is implemented as part of the operating system420, e.g. as a function or module of the operating system420. In other embodiments, the web server422is an application running on the remote server114, or even at a remote site under the control of the remote server114. The web server422is arranged to provide the files for running the PWA328to the personal computing device104, on request. It also provided a portal to manage interactions between the personal computing device104(and aerosol generation devices102) and the user database408.

Referring toFIG.5, a method500of launching the PWA328involves a user first interacting with the user interface314of the personal computing device104to provide an input indicating that the user wishes to open the PWA328. In one embodiment, when the user first purchases an aerosol generation device102, the user is prompted to download and install the PWA328. In this embodiment, the user accesses a URL that is present on the packaging or user interface212of the aerosol generation device102using the web browser324of the personal computing device104. The URL points to a website hosted on the web server422of the remote server114. In one embodiment, the accessing of the URL is achieved by the user operating the personal computing device104to scan a barcode that encodes the URL. Specifically, the barcode may be a 2D barcode. Alternatively or in addition, the URL is presented in plain text for the user to type into the web browser324of the personal computing device104.

In more detail, the user is typically prompted by the packaging of the newly purchased aerosol generation device102to visit a specified website associated with the personal computing device104. At the website the user is given instructions as to how to download the native application326from a suitable repository for whichever type of operating system the user's personal computing device104is employing (e.g. Android®). Once the user follows these instructions and downloads and installs the native application326the user is asked to launch the native application326and from within the native application326, or more specifically from within the web browser324launched under the control of the native application, to navigate to a specified website from whence the PWA328is downloaded. From within the native application326, the downloading of the PWA328may commence automatically once the URL is selected, or following a further input from the user, e.g. by the user double clicking on an associated icon on the user interface314of the personal computing device104. When the PWA328has not previously been accessed from the particular personal computing device104and/or is not installed on the personal computing device104, the icon may be displayed in the web browser324. That is, the user first navigates to a web page provided to the personal computing device104by the web server422, which web page includes the icon. Once the files for running the PWA328have been downloaded from the web server422, the PWA may be launched.

During subsequent launches of the PWA328, the icon is typically displayed on a home screen element of the personal computing device104. When this icon is selected by the user, the personal computing device104receives, at step502, an input indicating that the user wishes to launch the PWA328. In response to the input from the user, rather than launching the PWA328directly, the personal computing device104launches the native application326on the personal computing device104, at step504. The native application326in turn launches (or re-launches) the web browser324, at step506. The native application326then loads files for launching the PWA328, at step508, and launches the PWA328on the web browser324, at step510.

It will be understood that the native application326allows a user to initiate the launching of the PWA328via the user interface314using the method. However, in some embodiments, the native application326automatically (i.e. without explicit interaction from the user) causes the PWA328to be launched, particularly for second and subsequent launchings of the PWA328, where the files for running the PWA328are already downloaded and stored (cached) in the browser storage324of the web browser324. In such a case, it is preferred that the user has some way of preventing the automatic launching of the PWA328if they should choose to do so, e.g. by clearing from the browser storage324the stored files necessary for running the PWA328or by modifying a setting associated with the native application326or by some other suitable mechanism.

In order to launch the PWA328, the native application326first launches the web browser324, at step506. More specifically, rather than launching the web browser324in a standard way on the personal computing device102, e.g. as if the user had initiated launch of the web browser324themselves, the native application326launches the web browser324in a modified way. Specifically, the native application326launches the web browser324with suitable functionality for supporting the PWA328. This includes native application326adding resources to the web browser324in the form of JavaScript code (or in other embodiments Python or another suitable computer language). The resources are generally part of the software of the native application326. In other embodiments, they may be stored at the web server422and accessed by the native application326, e.g. when the PWA328is downloaded from the web server422. The resources may be specific to the operating system322of the personal computing device104, e.g. the resources provided for Android® may be different to the resources provided for iOS®. The resources are added to libraries of the web browser324as objects. More specifically, they are added as part of the Document Object Model of the PWA328.

The PWA328is launched on the web browser324, at steps508and510, by the web browser324being directed to the Uniform Resource Locator for the PWA328. If it is the first time the web browser324is opening the URL, the web browser324uses the URL to download the files for running the PWA328from the remote server114. The files for running the PWA328are received from the remote server114via the Internet112. In the present embodiment, the files for running the PWA328are received over the long-range communication connection120from the remote server114. In an alternative embodiment, the files for running the PWA328are received over the short-range wireless communication connection118with the access point110. Once the web browser324downloads the required files, the web browser324launches the PWA328, at step510, and stores the files for running the PWA328in the browser storage332of the web browser324, at step512. In other embodiments, the files required for the PWA328are stored elsewhere in the storage306of the personal computing device104.

If the PWA328(e.g. the set of files required for the PWA328) has been downloaded already, the web browser324retrieves the files for running the PWA328from the browser storage332or elsewhere in the storage306or memory304of the personal computing device104. In this scenario, the files do not need to be stored again, and step512is therefore shown as optional inFIG.5.

The files for running the PWA328include any one or more of the following files: HyperText Markup Language (HTML), JavaScript, Cascading Style Sheet (CSS), JavaScript Object Notation (JSON), eXtensible Markup Language (XML), images, or any other PWA related files. These files may be compressed and require decompression. The files for running the PWA328may be minified and/or obfuscated.

Referring toFIGS.6A and6B, a method600of establishing the short-range wireless communication connection116with one of the aerosol generation devices102and storing configuration information of aerosol generation device102comprises first launching the PWA328, at step602, using the method500of launching the PWA328described with reference toFIG.5above. Using the PWA328, the user then initiates a command to scan for nearby aerosol generation devices102, at step604. The user initiates the command to scan for nearby aerosol generation devices102by interacting with the PWA328via the user interface314of the personal computing device104. In this embodiment, the user initiates the scanning by selecting an icon within the PWA328displayed by the web browser324. In alternative embodiments, the PWA328scans for aerosol generation devices102when the PWA328starts, at a certain time after the PWA328has started, periodically, at a set time in the day, when a timer triggers, when requested by the remote server114, or when requested by the aerosol generation device102.

The PWA328provides a call to initiate the scanning. In this embodiment, the PWA328uses a web browser short-range wireless communication function, e.g. the Web Bluetooth® API, to generate the call. The call may comprise JavaScript® roughly as follows:

navigator.bluetooth.requestDevice(options)// Connect GATT server.then(device => {log(′> Name:′ + device.name);log(′> Id:′ + device.id);log(′> Connected:′ + device.gatt.connected);return device.gatt.connect( );})

Such a call would routinely be rejected by the web browser324, as the web browser324does not inherently include functionality for communicating with the wireless communication controller330. However, using the functionality added to the web browser324by the native application326when the native application326launched the web browser324, the web browser324in its modified form, is able to respond to the call.

In more detail, the code causes the web browser324to access the object found in its directory at “navigator.bluetooth.requestDevice”. In this embodiment, that object is JavaScript previously inserted by the native application326when the web browser324was launched. This code may comprise JavaScript® roughly as follows:

navigator.bluetooth = {requestDevice: function(options) {var id = window.guid( );var p = new Promise(function(resolve, reject) {window.promises[id] = {resolve: resolve,reject: reject};});var message = {messageId: id,fn: ‘requestDevice’,parameters: options};var messageString = JSON.stringify(message);window.webkit.messageHandlers.notification.postMessage(messageString);return p;}

So, when the PWA328generates the call to scan for aerosol generation devices102, the web browser324processes the call using the object found in its directory at the appropriate location, e.g. using the code above. This code functions to provide a promise to the web browser324. It also causes the web browser324to provide swift code to the native application326. So, the web browser324effectively converts the call into a command to the native application326. The swift code defining the command to the native application326may be roughly as follows:

let messageBody = message.body as! Stringif let dataFromString = messageBody.data(using: .utf8, allowLossyConversion:false) {do {let json = try JSON(data: dataFromString)try self.processJsonMessage(json: json)} catch {}}

The native application326receives the command and uses it to initiate the wireless communication controller330to scan for aerosol generation devices102. Upon receipt of the command, the native application326executes the following code with the wireless communication controller330:

case “requestDevice”:var uuidServices = [CBUUID]( )var deviceName: String?if let filters = json[“parameters”][“filters”].array {for filter in filters {if let name = filter[“name”].string {deviceName = name}if let services = filter[“services”].array {uuidServices = services.map { CBUUID(string:$0.stringValue.uppercased( )) }}}}if let acceptAllDevices = parameters[“acceptAllDevices”].bool {if acceptAllDevices {uuidServices = [ ]deviceName = nil}}print(“Scan started for:”)print(“ - Services: \(uuidServices)”)print(“ - Device name: \(deviceName)”)self.delegate?.startedScanning(name: deviceName, services: uuidServices)let scanFuture = self.manager.startScanning(forServiceUUIDs: nil)scanFuture.flatMap { [weak manager] discoveredPeripheral ->FutureStream<Void> inself.delegate?.foundPeripheral(discoveredPeripheral)return FutureStream<Void>( )}

This causes the wireless communication controller330to control the communication interface310of the personal computing device104to scan for aerosol generation devices102, at step604. Any aerosol generation devices102that are within range, in a discoverable mode (or that are already paired to the personal computing device104), and also have short-range wireless communication interfaces of the same protocol as the personal computing device104respond. The aerosol generation devices102respond with configuration information, comprising a consumer apparatus identifier. In the present embodiment, the consumer apparatus identifier is the Bluetooth® Media Access Control (MAC) address of the aerosol generation device102.

The configuration information of each aerosol generation device102is received at wireless communication controller330of the personal computing device104and then sent to or retrieved by the PWA328, at step606. More specifically, the native application326receives a response from the wireless communication controller330that, in the present embodiment, comprises swift code roughly as follows:

func notify(uuid : String, contents : String) {let messageToSend = “window.notify(‘\(uuid)’, \(contents))”self.webView.evaluateJavaScript(messageToSend) { (any, error) in }}

It will be apparent that the PWA328makes calls to the Web Bluetooth® API in order to carry out tasks such as scanning for devices over the short-range wireless communication connection116, or writing or receiving messages or data to and from the aerosol generation devices102. In the present embodiment this is done in a manner which is agnostic as to which application is actually supporting the Web Bluetooth® API—i.e. the (unmodified) web browser324or the web browser324when appropriately modified by the native application326. Preferably therefore the native application326is configured to determine if the web browser324can handle Web Bluetooth® API calls (in the desired manner) in which case it does not need to apply the code for modifying the web browser324to be able to handle Web Bluetooth® API calls (unless it needs them to be handled in a non-standard way for some reason in which case it can still modify the web browser324by effectively over-riding the standard functions for handling Web Bluetooth® API calls to perform the desired non-standard actions). This functionality is preferably handled by having the native application326query the web browser324for its name and version and comparing this with a look up table which specifies the correct actions to take (in terms of to what extent to modify the existing behaviour of the web browser324) depending on the name and version of the web browser324, the operating system322or of the personal computing device104itself.

With all of the configuration information of the aerosol generation device(s)102received610, the personal computing device104displays a list of all of the candidate aerosol generation devices102on the user interface312, at step608.

A user selects which of the candidate aerosol generation devices102they would like to interact with. One or more may be selected. (Note, in an alternative embodiment, if only one aerosol generation device102is identified as being in range and it is one which the user has previously selected from the PWA328, then the PWA328can automatically select that aerosol generation device102without requiring confirmation from the user thus effectively skipping displaying the list and receiving user selection and moving instead directly from receiving configuration information610to setting up the short-range wireless communication connection116with the aerosol generation device102as now described in greater detail below). The selection is received at the user device102, at step610.

The PWA328causes the personal computing device104to open the short-range communication connection116with the selected aerosol generation device102, at step612. The short-range wireless communication connection116is set up using some or all of the configuration information for the selected aerosol generation device(s)104. In the present embodiment, the consumer apparatus identifier is used to set up the short-range wireless communication connection116. In this example, the MAC address of the selected aerosol generation device(s)102is the consumer apparatus identifier.

Further configuration information may comprise any one or more of the following information indicative of the functioning of the aerosol generation device102:Generic Attribute Profile Services (GATT) information,GATT UUIDs,GATT Characteristics,authentication information,capsule information,device settings,event information, and/orvaping information.

Capsule information, which is relevant in embodiments in which the aerosol generation device102takes a consumable item217in the form of a capsule or atomiser containing a reservoir of e-liquid to be vaporised, comprises an estimated number of puffs left in capsule and may include amount of e-liquid and/or nicotine left in the capsule. The capsule information is updated regularly, e.g. after every puff and/or when a user changes capsule, etc.

In this embodiment, device settings comprise sleep time and max puff duration. Event information comprises malfunction events, over temperature events and dry vape events. Vaping information comprises information about whether the user is using the aerosol generation device102. It may further include information about duration, temperature, and capsule information.

The native application326receives the information indicative of the functioning of the aerosol generation device102. The information indicative of the functioning of the aerosol generation device102is passed from the native application326to the PWA328via the web browser324. The information indicative of the functioning of the aerosol generation device102is received at the PWA328and can be used by the PWA328. For example, some or all of the information may be displayed to the user by the PWA on display318of the user interface314of the personal computing device.

The consumer apparatus identifier is stored in the browser storage332of the web browser324at step612. All or a portion the information indicative of the functioning of the aerosol generation device102may also be stored in the browser storage332of the web browser324. The storing is carried out by the PWA328and/or by the web browser324. In some embodiments, the information is time stamped with the current time.

Referring toFIG.7, a method700of initiating the short-range wireless communication connection116between the personal computing device104and the aerosol generation device102is shown. For example, after the short-range wireless communication connection116between the personal computing device104and the aerosol generation device102that has already been established using the method described with reference toFIGS.6A and6Bhas been closed, it can be re-initiated again using the method described with reference toFIG.7.

First, the PWA328is launched on the personal computing device104, at step702, using the method500of launching the PWA328described above with reference toFIG.5.

The browser storage332of the web browser324stores one or more consumer apparatus identifiers. The PWA328accesses the consumer apparatus identifiers, at step704, from the browser storage332. A determination of which aerosol generation device102to connect to is then made, at step706. In the present embodiment, the consumer apparatus identifiers stored in the browser storage332are presented to the user on the user interface312of the personal computing device104. The user selects which aerosol generation device102they wish to connect to. If there is only one aerosol generation device102then that aerosol generation device102is selected by the user (or may be selected on behalf of the user automatically).

In the present embodiment, the user interface310displays a user friendly name for the aerosol generation device102associated with the consumer apparatus identifier, e.g. as an icon. When the user interacts with the name or icon of the aerosol generation device102, the consumer apparatus identifier associated with the aerosol generation device102is selected. In another embodiment, the consumer apparatus identifier is itself displayed.

The consumer apparatus identifier corresponding to the determined or selected aerosol generation device102is retrieved by the PWA328from the browser storage332, at step708. The PWA328uses the consumer apparatus identifier to cause the personal computing device104to initiate the short-range wireless communication connection116with the determined or selected aerosol generation device102, at step710. It will be appreciated that the consumer apparatus identifier has endured in the browser storage332from when the PWA328was last used, via the web browser324and the native application326, to establish the short-range wireless communication connection116. Even if the web browser324and native application326are themselves closed, e.g. are terminated or stop running, the consumer apparatus identifier remains in the browser storage. This allows the short-range wireless communication connection116to be initiated straightforwardly, without having to retrieve the consumer apparatus identifier from the aerosol generation device102again, e.g. by re-establishing the short-range wireless communication connection using the method600described with reference toFIGS.6A and6B.

In this embodiment, the consumer apparatus identifier is the Bluetooth® MAC address and is used to initiate the short-range wireless communication connection116. In order to initiate the short-range wireless communication connection116, the PWA328generates a call. The call seeks to cause the personal computing device104to establish the short-range wireless communication connection116with the aerosol generation device102. The web browser324processes the call using the appropriate object found in its directory at the appropriate location. The code of the object functions to provide a promise to the web browser324. It also causes the web browser324to provide swift code to the native application326, such that the web browser324effectively converts the call into a command to the native application326. The native application326receives the command and uses it to cause the wireless communication controller330to open the short-range wireless communication connection116with the aerosol generation device102.

Referring toFIG.8, a method800of transmitting information regarding the functioning of the aerosol generation device102to the remote server114is shown.

With the short-range wireless communication connection116between the personal computing device104and the selected aerosol generation device102already established and/or initiated, the personal computing device104receives from the selected aerosol generation device102, information indicative of the functioning of the selected aerosol generation device102over the short-range wireless communication connection116, at step802.

In the present embodiment, the information indicative of the functioning of the selected aerosol generation device102may comprise any one or more of the following:identity and/or type of aerosol generation device102, such as a model and serial number identifying the aerosol generation device102,the type and identity of any consumable item217installed in the aerosol generation device102,the status of the aerosol generation device102and/or of the consumable item217(if present) such as the battery level of the aerosol generation device102and current settings values of the aerosol generation device102(e.g. the target temperature setting or a “vapour volume” level setting) and information about the capacity of the consumable item217(e.g. the number of puffs remaining before the consumable item217will be considered to have expired, the amount of liquid remaining in the consumable item217if it includes a reservoir of liquid and/or details about the amount that the consumable item217has been used (see below) and/orinformation about the usage of the aerosol generation device102since a previous point in time since such information was successfully sent to the remote114server and/or the PWA328.

The information indicative of the functioning of the selected aerosol generation device102is stored in the browser storage332of the web browser324, at step804. In the present embodiment, the information indicative of the functioning of the selected aerosol generation device102is also transmitted to the remote server114via the Internet112, at step808. In particular, the information indicative of the functioning of the selected aerosol generation device102is transmitted to the remote server114via the long-range wireless communication connection120. In another embodiment, the information indicative of the functioning of the aerosol generation device102is transmitted810to the remote server114via the short-range wireless communication connection118via the access point110.

In the present embodiment, the transmission of the information indicative of the functioning of the selected aerosol generation device102is not transferred until a connection to the remote server114is determined to be available, at step806. The determination is made by the personal computing device104attempting to contact the remote server114via the Internet112. If a connection to the remote server114is determined to be available, the transmission of the information indicative of the functioning of the selected aerosol generation device102is transmitted to the remote server114. Note that in an alternative embodiment, some of the information indicative of the functioning of the aerosol generation device102is only transmitted to the personal computing device104if and only if the personal computing device102has determined that a connection to the remote server114is available and has communicated this as part of establishing and/or initiating the short-range wireless communication a connection116between the personal computing device104and the aerosol generation device102. This particularly applies to any relatively large amounts of data (e.g. puff data history relating to the usage of the aerosol generation device102by a user—which may advantageously contain any one or more of the time and duration of each puff taken by the user, the target temperature setting at which each puff was taken and possibly the location of the aerosol generation device102at which each puff was taken). In particular, large batches of data such as these may be stored at the personal computing device102only until they have been transmitted to the remote server114successfully. Thus an example process flow, in overview, would be: receive at aerosol generation device102from personal computing device104confirmation that the device104has a connection to the remote server114available; transmit from apparatus102large information batch to the personal computing device104; forward from personal computing device104to the remote server114large batch of information; receive confirmation from remote server114at the personal computing device104that the large information batch has been successfully received; send confirmation from personal computing device104to the aerosol generation device102that the large information batch has been successfully transmitted to the remote server114; delete from the aerosol generation device102the successfully transmitted large information batch.

In a particularly preferred embodiment, the consumable item217is a cartomiser that includes a memory for storing data about the consumable217, which information includes an identifier of the consumable217, information about the consumable item217and preferably information such as the flavour of the consumable item217, the nicotine strength of the consumable item217(e.g. mentholated tobacco flavour at 18 mg/ml concentration of nicotine) and most preferably includes information about the amount of liquid (estimated) to be remaining available in the consumable item217for consumption by a user. Most preferably the information about the amount of liquid estimated to be remaining in the consumable item217may be information about the usage of the consumable item217(e.g. puffs taken whilst containing the consumable item217and information about those puffs such as the settings of the aerosol generation device102during the puff, the duration of the puff, the energy consumed by the heating element216during the puff, ambient temperature or temperature of the heating element216, prior to, or at the beginning of, the puff, etc) which may be aggregated (e.g. total energy consumed by the heating element whilst taking puffs from the consumable item217, total puff duration of all puffs taken at different target temperatures or at different vapour volume settings, average ambient temperature or heating element temperature prior to or at the beginning of a puff, etc.) to minimise the memory required to store the data. Storing usage data rather than an actual estimated liquid level remaining is advantageous because then the server can estimate from this data how much liquid (or how many puffs) is (or are) remaining in the consumable item217using a sophisticated algorithm which may be improved over time or may take into account information from a large number of (possibly aggregated to avoid any issues relating to the misuse of personal information) to provide the most accurate information, etc. rather than relying on say the aerosol generation device102to have to perform such an estimation.

In the present embodiment, the personal computing device104is further configured to send information for the aerosol generation device102to the aerosol generation device102via the short-range wireless communication connection116. The information may include any one or more of the following:settings for the aerosol generation device102, such as maximum power levels for the heating element216,operation enablement messages,user authentication information, andfirmware updates for the aerosol generation device102.

The described embodiments of the invention are only examples of how the invention may be implemented. Modifications, variations and changes to the described embodiments will occur to those having appropriate skills and knowledge. These modifications, variations and changes may be made without departure from the scope of the claims.