The present invention relates generally to wireless communication and, in particular, to an ad-hoc wireless communication system.
Ultra-wideband (UWB) is a wireless communication technology that uses a very low energy level for short-range, high-bandwidth communications. Devices using UWB operate under the same radio-frequency configuration (such as frequency band, coding, modulation, etc.). When these UWB devices are used at the same location, two transmitted UWB signals overlapping in time results in signal collision.
To overcome the problem of signal collision, a mechanism called ALOHA is used. The ALOHA mechanism enables UWB devices to transmit UWB signals without any coordination. If a signal collision is detected, then a UWB device resends the UWB signals. However, the ALOHA mechanism is not effective in overcoming this problem when the number of UWB devices increases.
The ALOHA mechanism has a communication success rate of 97% when only 18% of the air is utilized. For example, in a time frame of 10 seconds, only 1.8 second of that time frame can be used to ensure that communication between the UWB devices is successful 97% of the time. This means 82% of the time is unused.
In another conventional solution, a server is deployed to coordinate when each UWB device can transmit UWB signals. However, this conventional solution is inappropriate in certain circumstances.
It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements.
Disclosed is a method of establishing an ad-hoc UWB communication method which seek to address the above problems.
According to an aspect of the present disclosure, there is provided a method of transmitting and receiving data between devices via an ad-hoc wireless communication network, the ad-hoc wireless network using a time frame having time slots, each of the time slots is assignable to one of the devices so that a device assigned to a time slot transmits and receives the data at the assigned time slot, the time frame being created by one of the devices.
According to another aspect of the present disclosure, there is provided a computer program product executable by a processor, the computer program product comprising a method of transmitting and receiving data between devices via an ad-hoc wireless communication network, the ad-hoc wireless network using a time frame having time slots, each of the time slots is assignable to one of the devices so that a device assigned to a time slot transmits and receives the data at the assigned time slot, the time frame being created by one of the devices.
According to another aspect of the present disclosure, there is provided an apparatus for implementing any one of the aforementioned methods.
According to another aspect of the present disclosure, there is provided a computer program product including a computer readable medium having recorded thereon a computer program for implementing any one of the methods described above.
Other aspects are also disclosed.
At least one embodiment of the present invention will now be described with reference to the drawings and appendices, in which:
Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the contrary intention appears.
It is to be noted that the discussions contained in the “Background” section and that above relating to prior art arrangements relate to discussions of documents or devices which form public knowledge through their respective publication and/or use. Such should not be interpreted as a representation by the present inventor(s) or the patent applicant that such documents or devices in any way form part of the common general knowledge in the art.
Hereinafter, the initiators 110A to 110H will be collectively referred to as the initiators 110 while the responders 120A to 120E will be collectively referred to as the responders 120. When referring to a single initiator, the term the initiator 110 or a specific number 110A to 110H will be used. When referring to a single responder, the term the responder 120 or a specific number 120A to 120E will be used.
Although 8 initiators 110 and 5 responders 120 are shown in
The initiators 110 and responders 120 are UWB devices that are capable of wirelessly communicating with each other using UWB technology.
Similar to the communication between initiators 110, the responders 120 also communicate with any of the initiators 110 when the responders 120 come into communication range of any one of the initiators 110. Further, although
The transmission of UWB signals by the initiators 110 and responders 120 is managed by a time frame 200, as shown in
The time frame 200 is divided into different time periods called time slots 210A to 210D. Hereinafter, the time slots 210A to 210D will be collectively referred to as the time slots 210. When referring to a single time slot, the term the time slot 210 or a specific number 210A to 210D will be used. Although only four time slots 210A to 210D are shown in the time frame 200, there can be more time slots 210. In one arrangement, the number of time slots 210 vary between 4 and 16. A time slot 210 is a span of time period in which an initiator 110 can transmit a UWB signal, to which other initiators 110 and the responders 120 respond. A time slot 210 is assigned to one initiator 110 to prevent signal collision from occurring. Each time slot 210 spans a time period of 10 to 20 ms. A time slot 210 can be unassigned, meaning no UWB signal is transmitted during an unassigned time slot 210.
The time frame 200 shown in
The block sync message 220 is the time period in which a block sync message is sent by the initiator 110 assigned to the time slot 210. The ack 230 is the time period in which the surrounding responders 120 and initiators 110 send acknowledgement messages after receiving the block sync message 220 transmitted at the block sync message time period 220. The function 240 is the time period in which the initiator 110 assigned to the time slot 210 performs an action. The buffer 250 is a time period buffering the current time slot (e.g., time slot 210A) from the next time slot (e.g., time slot 210B).
The acknowledgement messages (sent by the surrounding initiators 110 and responders 120 during ack 230) include the identification numbers of those surrounding initiators 110 and responders 120. The acknowledge messages enable the initiator 110 (which is assigned to the time slot 210) to be aware of the surrounding initiators 110 and responders 120. The initiator 110 then transmit the necessary action function to the surrounding initiators 110 and responders 120 at function 240. In the example mining environment, the function 240 is a ranging process for determining relative distances between the initiator 110 and the surrounding initiators 110 and responders 120. Such a ranging process also determines the relative locations of the surrounding initiators 110 and responders 120.
For ease of reference, the present disclosure uses the same reference numeral of the time period when referring to the message associated with that time period. For example, the reference numeral 220 is used to represent the block sync message itself and also the time period in which the block sync message is sent.
The header 222 is generated with a format having information such as personal area network identification (PAN ID), data frame structure, and the like. The message type 224 is a single byte to indicate the message type. The message source 226 includes 2-6 bytes indicating the identification of the UWB device (i.e., the initiator 110 assigned to the time slot 210) that is sending the block sync message 220.
The time frame information 228 includes data blocks, namely time frame identification 228A, current time slot index 228B, and time slot information 228CA to 228CN. The time frame identification 228A is the data block in which the priority level of the time frame 200 is indicated. The current time slot index 228B is the data block in which the position of the current time slot (e.g., time slot 210B) within the time frame 200 is indicated.
Time slot information 228CA to 228CN are the data blocks indicating the assignment between the respective initiators 110 and the respective time slots 210A to 210N. Each time slot information 228CA to 228CN is also used to indicate the expiry of the assignment between an initiator 110 and that time slot 210.
For example, time slot 210A is assigned to initiator 110A and this assignment expires after 10 more cycles of time frame 200. Therefore, at time slot information 228CA, a signal is transmitted indicating the assignment of time slot 210A to initiator 110A and that the assignment expires in 10 cycles.
Each initiator 110 stores a copy of the time frame information 228. However, as the system 100 does not have a centralized controller, the time frame information 228 stored at one initiator 110 may be different to the time frame information 228 stored at another initiator 110. A method to resolve such a difference will be discussed hereinafter in relation to
The initiator 110 has two modes: listening mode and active mode. In the listening mode, an initiator 110 listens to any block sync messages 220 sent by any other initiators 110. The method 300 (shown in
In the active mode, the initiator 110 is capable of receiving block sync messages 220 from other initiators 110. The method 400 (shown in
An initiator 110 enters the listening mode when the initiator 110 is initially turned on. An initiator 110 also enters listening mode when certain circumstances occur, as will be described hereinafter.
The method 300 commences at step 302 by determining whether the initiator 110 has received a block sync message 220 from any other initiators 110 or a timer has expired. The initiator 110 has a timer that is triggered when the initiator 110 enters the listening mode. In one arrangement, the timer is a 2 second timer.
If a block sync message 220 is received from other initiators 110, the method 300 proceeds from step 302 to step 304. Otherwise, if the timer expires, the method 300 proceeds from step 302 to step 310.
In step 304, the method 300 determines whether there is an empty time slot 210 within the time frame 200 of the received block sync message 220. As discussed in relation to
As discussed above, the method 300 proceeds from step 302 to step 310 when the time expires. In step 310, the method 300 creates a time frame 200 where the time slots 210 are unassigned. The created time frame 200 is stored in memory 1309 of the initiator 110 (see
In step 306, the method 300 selects an empty time slot 210 and proceeds to step 308.
In step 308, the initiator 110 enters the active mode. The method 300 concludes at the conclusion of step 308.
As described above, the method 400 of
The method 400 is executed when the initiator 110 receives block sync message(s) 220 from other initiators 110, shown in
In one arrangement, the method 400 waits for a period of time to allow further block sync messages 220 to be received.
Once the priority level of a received block sync message 220 is determined, there are three possible scenarios:
In the first scenario (Higher Priority), the method 400 proceeds from step 402 to step 406.
In the second scenario (Same Priority), the method 400 from step 402 to sub-process 420.
In the third scenario (Lower Priority), the method 400 proceeds from step 402 to step 404.
In step 406, the method 400 updates the time frame information 228 of the initiator 110 executing the method 400 with the time frame information 228 of the received block sync message 220 with the highest priority level. In other words, the initiator 110 executing the method 400 now stores the same time frame information 228 as the time frame information 228 of the received block sync message 220. The method 400 then proceeds from step 406 to step 408.
In step 408, the method 400 determines whether there is an empty time slot in the updated time frame information 228. If there are any empty time slots 210 (YES), the method 400 proceeds from step 408 to step 410. Otherwise, if there is no empty time slot 210 (NO), the method 400 proceeds from step 408 to the method 300 (i.e., listening mode) to put the initiator 110 into the listening mode.
In step 410, the method 400 selects an empty time slot 210 and proceeds to step 308.
In step 308, the initiator 110 enters the active mode. The method 400 concludes at the conclusion of step 308.
As described above, the third scenario proceeds from step 402 to step 404. In step 404, the method 400 transmits a deny message responding to the received block sync messages 220. The method 400 then proceeds from step 404 to step 308.
As described above, the second scenario proceeds to sub-process 420. The flowchart of sub-process 420 is illustrated in
Sub-process 420 commences at step 412 by determining whether more than one block sync messages 220 having the same priority level are received. If there are more than one block sync messages 220 (YES), sub-process 420 proceeds from step 421 to step 422. Otherwise (NO), sub-process 420 proceeds from step 421 to step 425.
In step 422, sub-process 420 determines the first block sync message 220 (having the same priority level) that is received by the initiator 110 executing the sub-process 420. Sub-process 420 proceeds from step 422 to step 425 for the first block sync message 220. Sub-process 420 proceeds from step 422 to step 423 for the remaining block sync messages 220.
In step 423, sub-process 420 transmits a deny message for the remaining block sync messages 220. Sub-process 420 then concludes and returns to the method 400.
In step 425, sub-process 420 determines whether the initiator 110 relating to the first block sync message 220 is claiming the time slot 210 that is selected by the initiator 110 executing sub-process 420. If so (YES), sub-process 420 proceeds from step 425 to the method 300 (i.e., listening mode) to put the initiator 110 into the listening mode. If not (NO), sub-process 420 proceeds from step 425 to step 426.
In step 426, sub-process 420 updates the time frame information 228 of the initiator 110 executing sub-process 420 with the time frame information 228 of the received block sync message 220. In one arrangement, the initiator 110 copies the time slot information 228CA to 228CN from the received block sync message 220.
In an alternative arrangement, the initiator 110 first determines the time slot information 228CA to 228CN from the received block sync message 220 and, for any time slot information 228C that are different, adopts the time slot information 228C from the received block sync message 220. For example, if the assignment of a time slot information 228C of the received block sync message 220 is the same as time slot information 228C stored in the initiator 110 but the expiry information is different, the initiator 110 stores the expiry information of the received block sync message 220 in the time slot information 228C. In this example, the time slot information 228CA of the block sync message 220 has an expiry information of 10 cycles, while the time slot information 228CA of the initiator 110 has an expiry information of 9 cycles. The initiator 110 updates the time frame information 228 by updating the expiry information of time slot information 228CA to 10 cycles. Sub-process 420 then proceeds from step 426 to step 427.
In step 427, sub-process 420 synchronizes the time frame 200 of the initiator 110 executing sub-process 420 with the received time of the first block sync message 220. Sub-process 420 returns to the method 400.
As described above, the active mode also enables an initiator 110 to transmit a block sync message 220 in order to perform a function. In this case, the function performed is a ranging process to determine the relative distances between the initiator 110 and other initiators 110 and responders 120. The transmission of a block sync message 220 and a ranging request is shown in a flowchart of the method 500 (shown in
The method 500 commences at step 502 by updating the time frame information 228. In particular, the method 500 updates the time slot information 228C (e.g., 228CA to 228CN) that is selected by the initiator 110 executing the method 500. The update to the time slot information 228C involves reducing the number of cycles to expiry of the assignment of the initiator 110 to the particular time slot 210.
For example, if the expiry is 10 cycles, then at step 502 the number of cycle is reduced to 9. If the number of expiry is reduced to 0, the assignment is removed. Accordingly, the priority level of the time frame 200 is also updated to reflect the current number of assignments of time slots 210 of the time frame 200.
The method 500 then proceeds from step 502 to step 504.
In step 504, the initiator 110 executing the method 500 transmits a block sync message 220 at the selected time slot 210. The method 500 then proceeds from step 504 to step 506.
In step 506, the method 500 determines whether a deny message is received in response to the transmitted block sync message. If a deny message is received (YES), the method 500 proceeds from step 506 to the method 300 (i.e., listening mode) so that the initiator 110 executing the method 500 is put into the listening mode. Otherwise (NO), the method 500 proceeds from step 506 to sub-process 520.
Sub-process 520 (shown in
Sub-process 520 commences at step 521 by transmitting a first ranging request. As described above, the initiator 110 executing sub-process 520 transmits the ranging request at its selected time slot 210. For example, if time slot 210B is selected by the initiator 110, then the initiator 110 transmits the ranging request within the time period of function 240 within the time slot 210B. The ranging request also includes a list of the identification numbers of the surrounding initiators 110 and responders 120 in the ranging request. The identification numbers of the surrounding initiators 110 and responders 120 are obtained when receiving the acknowledgement messages within the time period of ack 230. Sub-process 520 then proceeds from step 521 to step 522.
In step 522, sub-process 520 receives first ranging responses from the surrounding initiators 110 and responders 120. When the first ranging responses are received, corresponding receiving timestamps are generated for the respective first ranging responses. Sub-process 520 then proceeds from step 522 to step 523.
In step 523, sub-process 520 transmits a second ranging request having the transmitting timestamp of the first ranging request, the transmitting timestamp of the second ranging request, and the receiving timestamps of the first ranging responses. Sub-process 520 then proceeds from step 523 to step 524.
In step 524, sub-process 520 receives ranging results from the surrounding initiators 110 and responders 120. Each ranging result includes a determined relative distance between the initiator 110 and one of the surrounding initiators 110 or responders 120. The ranging results are calculated by the respective surrounding initiators 110 and responders 120 receiving the second ranging request, as discussed below in relation to step 708 of the method 700. Sub-process 520 then proceeds from step 524 to warning sub-process 600.
Sub-process 600 is executed by a firmware 1333 executable within the embedded controller 1302 (described below in relation to
Sub-process 600 commences at step 602 by determining whether one or more ranging results are received. If no ranging results are received (NO), sub-process 600 concludes at the conclusion of step 602. Otherwise (YES), sub-process 600 proceeds from step 602 to step 604.
In step 604, sub-process 600 determines the relative distances and relative locations of the surrounding initiators 110 and responders 120 based on the ranging results. The relative locations are determined using a trilateration algorithm. In the example above where multiple initiators 110 are disposed on one object (e.g., a large mining vehicle), then the initiator 110 determining the relative locations of surrounding initiators 110 and responders 120 removes the ranging results from the other initiators 110 disposed on the same object. Sub-process 600 proceeds from step 604 to step 606.
In step 606, sub-process 600 determines whether to generate a warning based on the determined relative distances and relative locations. As described above, there are multiple arrangements to use the initiators 110. The first arrangement has one initiator 110 executing sub-process 600. The second arrangement has multiple initiators 110 being disposed on an object (e.g., a large mining vehicle) where a central controller (not shown) is executing sub-process 600. The third arrangement is similar to the second arrangement but one of the multiple initiators 110 is acting as a central controller to execute sub-process 600.
For the first arrangement, the generation of a warning is determined based on the relative distance. The initiator 110 defines a warning zone with a certain radius. The relative distance from any miner (with a responder 120) or other vehicles (with other initiators 110) smaller than the defined radius of the warning zone triggers the warning.
For the second and third arrangements, the warning is triggered based on both the relative distance and location. The central controller estimates the relative location of a responder 120 or an initiator 110 disposed on another vehicle using a trilateration algorithm. The warning is then generated based on the risk of collision. If the estimated location of a responder 120 or an initiator 110 is ahead of the current object (e.g., a mining vehicle), the warning is triggered if the relative distance is closer than a first predetermined distance (e.g., 20 metres). If the responder 120 or the other initiator 110 is estimated to be parallel to or behind the initiator 110, the warning is triggered if the relative distance is closer than a second predetermined distance (e.g., 10 metres). Accordingly, the first predetermined distance is farther than the second predetermined distance to allow for the movement of the initiator 110 toward the responder 120 or other initiator 110. If a warning is to be generated (YES), sub-process 600 proceeds from step 606 to step 608. Otherwise (NO), sub-process 600 concludes at the conclusion of step 606.
In step 608, the initiator 110 executing sub-process 600 generates a warning. Sub-process 600 concludes at the conclusion of step 608. At the conclusion of sub-process 600, the process returns to sub-process 520, which in turn returns to the method 500. The method 500 then returns the initiator 110 to the active mode.
Method 700 commences when a first ranging request is received. The method 700 commences at step 702 by determining whether an identification number associated with the initiator 110 or responder 120 (executing the method 700) is listed in the first ranging request. For example, if an initiator 110C having an identification number of 110C receives a first ranging request, the initiator 110C determines at step 702 whether an identification number 110C is listed in the first ranging request. If the associated identification number is not listed (NO), method 700 concludes at the conclusion of step 702. If the associated identification number is listed (YES), method 700 proceeds from step 702 to step 704.
In step 704, the method 700 transmits a first ranging response having the identification number of the initiator 110 or responder 120 executing the method 700. The transmitting timestamp of the first ranging response is recorded. Method 700 then proceeds from step 704 to step 706.
In step 706, method 700 determines whether a second ranging request is received. If a second ranging request is not received (NO), method 700 concludes at the conclusion of step 706. If a second ranging request is received (YES), method 700 proceeds from step 706 to step 708.
In step 708, method 700 determines the relative distance from the initiator 110 or responder 120 executing the method 700 to the initiator 110 transmitting the second ranging request. The relative distance is determined using the transmitting timestamp of the first ranging response (see step 704), transmitting timestamp of the first ranging request, the transmitting timestamp of the second ranging request, and the receiving timestamp of the first ranging response for this particular initiator 110 or responder 120 (where the latter three timestamps are included in the second ranging request).
Distance between an initiator 110 and a response 120 or another initiator 110 can be calculated if the time of flight (TOF) of a signal is determined. However, a single signal (i.e., the first ranging request or the first ranging response) is insufficient as the clock of the initiator 110 and the responder 120 or the other initiator 110 are not synchronized. According, the TOF is obtained by determining the time differences between the transmission and receipt of the first ranging request and the first ranging response. The second ranging request provides more time differences enabling a better TOF estimation by reducing errors due to the time clock differences. The method 700 then proceeds from step 708 to step 710.
In step 710, the method 700 transmits a ranging result including the determined relative distance. The method 700 then concludes at the conclusion of step 710.
As seen in
The initiator 110 includes a display controller 1307, which is connected to a video display 1314, such as a liquid crystal display (LCD) panel or the like. The display controller 1307 is configured for displaying graphical images on the video display 1314 in accordance with instructions received from the embedded controller 1302, to which the display controller 1307 is connected.
The initiator 110 also includes user input devices 1313 which are typically formed by keys, a keypad or like controls. In some implementations, the user input devices 1313 may include a touch sensitive panel physically associated with the display 1314 to collectively form a touch-screen. Such a touch-screen may thus operate as one form of graphical user interface (GUI) as opposed to a prompt or menu driven GUI typically used with keypad-display combinations. Other forms of user input devices may also be used, such as a microphone (not illustrated) for voice commands or a joystick/thumb wheel (not illustrated) for ease of navigation about menus.
As seen in
The initiator 110 also has a communications interface 1308 to permit coupling of the device 1301 to a computer or communications network 1320 via a connection 1321. The connection 1321 may be wired or wireless. For example, the connection 1321 may be radio frequency or optical. An example of a wired connection includes Ethernet. Further, an example of wireless connection includes Bluetooth™ type local interconnection, UWB, Wi-Fi (including protocols based on the standards of the IEEE 802.11 family), Infrared Data Association (IrDa) and the like.
As described above, the initiator 110 is configured to communicate with other initiators 110 and responders 120. The embedded controller 1302 is provided to perform the method 300 to 700 described above.
The methods described hereinbefore may be implemented using the embedded controller 1302, where the processes of
The software 1333 of the embedded controller 1302 is typically stored in the non-volatile ROM 1360 of the internal storage module 1309. The software 1333 stored in the ROM 1360 can be updated when required from a computer readable medium. The software 1333 can be loaded into and executed by the processor 1305. In some instances, the processor 1305 may execute software instructions that are located in RAM 1370. Software instructions may be loaded into the RAM 1370 by the processor 1305 initiating a copy of one or more code modules from ROM 1360 into RAM 1370. Alternatively, the software instructions of one or more code modules may be pre-installed in a non-volatile region of RAM 1370 by a manufacturer. After one or more code modules have been located in RAM 1370, the processor 1305 may execute software instructions of the one or more code modules.
The application program 1333 is typically pre-installed and stored in the ROM 1360 by a manufacturer, prior to distribution of the electronic device 1301. However, in some instances, the application programs 1333 may be supplied to the user encoded on one or more CD-ROM (not shown) and read via the portable memory interface 1306 of
The second part of the application programs 1333 and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 1314 of
The processor 1305 typically includes a number of functional modules including a control unit (CU) 1351, an arithmetic logic unit (ALU) 1352, a digital signal processor (DSP) 1353 and a local or internal memory comprising a set of registers 1354 which typically contain atomic data elements 1356, 1357, along with internal buffer or cache memory 1355. One or more internal buses 1359 interconnect these functional modules. The processor 1305 typically also has one or more interfaces 1358 for communicating with external devices via system bus 1381, using a connection 1361.
The application program 1333 includes a sequence of instructions 1362 though 1363 that may include conditional branch and loop instructions. The program 1333 may also include data, which is used in execution of the program 1333. This data may be stored as part of the instruction or in a separate location 1364 within the ROM 1360 or RAM 1370.
In general, the processor 1305 is given a set of instructions, which are executed therein. This set of instructions may be organised into blocks, which perform specific tasks or handle specific events that occur in the electronic device 1301. Typically, the application program 1333 waits for events and subsequently executes the block of code associated with that event. Events may be triggered in response to input from a user, via the user input devices 1313 of
The execution of a set of the instructions may require numeric variables to be read and modified. Such numeric variables are stored in the RAM 1370. The disclosed method uses input variables 1371 that are stored in known locations 1372, 1373 in the memory 1370. The input variables 1371 are processed to produce output variables 1377 that are stored in known locations 1378, 1379 in the memory 1370. Intermediate variables 1374 may be stored in additional memory locations in locations 1375, 1376 of the memory 1370. Alternatively, some intermediate variables may only exist in the registers 1354 of the processor 1305.
The execution of a sequence of instructions is achieved in the processor 1305 by repeated application of a fetch-execute cycle. The control unit 1351 of the processor 1305 maintains a register called the program counter, which contains the address in ROM 1360 or RAM 1370 of the next instruction to be executed. At the start of the fetch execute cycle, the contents of the memory address indexed by the program counter is loaded into the control unit 1351. The instruction thus loaded controls the subsequent operation of the processor 1305, causing for example, data to be loaded from ROM memory 1360 into processor registers 1354, the contents of a register to be arithmetically combined with the contents of another register, the contents of a register to be written to the location stored in another register and so on. At the end of the fetch execute cycle the program counter is updated to point to the next instruction in the system program code. Depending on the instruction just executed this may involve incrementing the address contained in the program counter or loading the program counter with a new address in order to achieve a branch operation.
Each step or sub-process in the processes of the methods described below is associated with one or more segments of the application program 1333, and is performed by repeated execution of a fetch-execute cycle in the processor 1305 or similar programmatic operation of other independent processor blocks in the electronic device 1301.
The arrangements described are applicable to the wireless communication industries.
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive.
In the context of this specification, the word “comprising” means “including principally but not necessarily solely” or “having” or “including”, and not “consisting only of”. Variations of the word “comprising”, such as “comprise” and “comprises” have correspondingly varied meanings.
Number | Date | Country | Kind |
---|---|---|---|
2021902460 | Aug 2021 | AU | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/AU2022/050867 | 8/9/2022 | WO |