Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, embodiments of the present invention will be described in detail below with reference to the accompanying drawings. However, it will be appreciated by those of ordinary skill in the art that numerous technical details are set forth in order to provide a better understanding of the present application in various embodiments of the present invention. However, the technical solution claimed in the present application can be implemented without these technical details and various changes and modifications based on the following embodiments.
The first embodiment of the invention relates to a data transmission method based on low-power Bluetooth. The method is mainly applied to the slave equipment of the low-power Bluetooth data transmission. The specific process is shown in fig. 1, and comprises the following steps:
step 101: the slave device transmits a first type of broadcast.
Specifically, as shown in fig. 7, the first type of broadcast may include: the slave device name 702 may also include: slave address 701, service type 703, broadcast interval 704, and slave key 705. The slave device transmits a broadcast of a first type on three broadcast channels defined by the Bluetooth Low Energy (BLE) standard at certain periods, i.e., broadcast periods of the first type. The number of the slave devices is not limited, a plurality of slave devices can transmit the first type of broadcast on three broadcast channels, and one slave device can also transmit the first broadcast on three broadcast channels; the main device can search the slave device which meets the requirement in the three broadcast channels according to the device name in the received first-class broadcast, and when the main device searches the required slave device, the main device initiates a connection request to the slave device.
For example, the existing slave a, slave B, master C, slave a and slave B transmit the first type broadcast once every 125ms, the device name "slave a" is included in the first type broadcast of slave a, and the device name "slave B" is included in the first type broadcast of slave B. The master device C monitors the first type of broadcast sent by the slave device a and the slave device B, and now the master device C needs to connect with a device with the device name of "slave device B", the master device C initiates a connection request to the slave device B.
It is worth mentioning that the slave device key in the first type of broadcast may be a random key, such as a random key generated by a random number. That is, the slave device key may be generated with a random number once every one cycle; the slave key may be generated once every two or more periods using a random number.
Step 102: a connection request and virtual connection parameters are received from a master device.
Specifically, the connection request includes frequency hopping information and a time interval, and the slave device establishes a communication connection with the master device according to the frequency hopping information and the time interval in the connection request. The connection request and its subsequent pairing process to form a connection are described in detail in the Bluetooth Low Energy (BLE) standard and are therefore not described in detail here.
Step 103: virtual connection parameters are received from a host device.
Specifically, as shown in fig. 8, the virtual connection parameters include: a master device address 801, a slave device address 701, a connection interval 802 (i.e. a broadcast period of the second type), a master device key 803 and a broadcast channel selection 804 (i.e. a broadcast channel to be employed by the virtual connection), which may be one or more of the three broadcast channels defined in the BLE protocol.
It should be noted that, since the master device does not receive the confirmation information after sending the connection request, it is not possible to confirm whether the connection is successful, and it is necessary to perform data interaction with the slave device in a specific channel to confirm whether the connection is successful, so the master device sends the virtual connection parameters to the slave device in the data channel.
Step 104: the connection to the master device is broken.
Specifically, in the classic bluetooth low energy protocol, maintaining the actual connection is a process consuming considerable energy and bandwidth, so in order to reduce the power consumption of the master device and the slave device, after the slave device stores the necessary data (master device address, second type broadcast period, master device key, broadcast channel of virtual connection) for establishing the virtual connection, the connection with the master device is immediately disconnected, so that the direct connection between the slave device and the master device is maintained only for a short time, and the process of the actual connection is generally maintained within 100 ms. The master device and the slave device establish a short actual connection, and then the data transmission process can be regarded as a 'virtual connection', which means that the slave device and the master device do not have a connection defined in the Bluetooth Low Energy (BLE) standard and existing in a data communication channel, but the master device can acquire the payload data of the slave device in real time and establish a standard connection at any time when needed through a multiplexing broadcast channel between the master device and the slave device.
Step 105: a second type of broadcast is sent to the master device.
Specifically, the slave device sends the second type broadcast to the master device according to the received virtual connection parameters. The virtual connection parameters may include: a transmission period (i.e., a second type of broadcast period) and a transmission channel (i.e., a virtually connected broadcast channel). The slave device then transmits the second type of broadcast on the transmission channel with a transmission period, while the random delay (advDelay) in the broadcast period is fixed to "0".
More specifically, the second type of broadcast, as shown in fig. 9, contains a payload 901 to be transmitted, a master device address 801, and a slave device address 701. For example, if the second type broadcast period of the existing slave device a, the master device B is 125ms, the slave device a transmits the second type broadcast to the master device every 125 ms.
It is worth mentioning that the payload in the second type of broadcast may be a payload encrypted with a target key, wherein the target key is generated according to a master device key in the pre-stored slave device key and virtual connection parameters. Further, the generation rule may be pre-agreed by the master device and the slave device. Target keys are generated by respective keys of the master device and the slave device, and the payloads in the second type of broadcast are encrypted through the target keys, so that the transmission safety of the payloads is enhanced.
In addition, the slave device may determine whether to perform the pairing process (steps 101 and 104) or perform the data transmission process (step 105) according to an instruction of the user.
It should be noted that, after the slave device finishes sending the second type of broadcast, it may choose not to monitor the response data of the master device, so as to reduce the power consumption of the BLE device. After the connection between the master device and the slave device is disconnected, the master device recovers monitoring (Scanning) of a broadcast channel, after receiving the broadcast containing the payload from the slave device, on one hand, calculates the next payload sending time of the slave device according to the second type of broadcast period in the virtual connection parameter, thereby obtaining a new payload in time and recovering the traditional connection channel when needed, and on the other hand, completes the analysis of the payload data packet according to the target key stored before.
One slave device can also communicate with a plurality of master devices, and after the slave device establishes virtual connection with the plurality of master devices, a user can freely select to connect the paired master devices by using software to perform data communication; the user may also directly select to communicate data with the connected paired master device.
It should be noted that there may also be multiple slave devices sending the second type broadcast to the master device address, where the number of the slave devices is not limited, for example, there are 2 slave devices, which are slave device No. 1 and slave device No. 2, and a master device a, where slave device No. 1 and slave device No. 2 send the second type broadcast to the master device a on broadcast channel No. 1, the sending time of slave device No. 1 is 1.25ms, the sending time of slave device No. 2 is 1.1ms, if the broadcast interval of the payload in the second type broadcast is 150ms, the number of the slave devices may be more than a hundred, and in practice, the number of the slave devices may be as many as 30.
The data transmission method based on bluetooth low energy in this embodiment is described based on slave devices, and as for the overall system, the data transmission interaction process between one slave device and the master device is as shown in fig. 2:
the slave device transmits a first type of broadcast on three broadcast channels defined by the Bluetooth Low Energy (BLE) standard, e.g., S21 in fig. 2; the first type broadcast may include a device name, and may further include a slave device address, a service type, a first type broadcast period, and a slave device key; the slave device key may be a random key; the slave key in the first broadcast transmitted by the slave device every cycle is regenerated, as in S22 in fig. 2, and the slave key is generated and updated; the slave device transmits the first type broadcast again, as in S23 in fig. 2, transmits the first type broadcast; the master device monitors the first type broadcast sent by the slave device, and sends a connection request to the slave device according to the name of the slave device in the first type broadcast, wherein the connection request includes the address of the master device, as shown in S24 in fig. 2, and the connection request is sent; the master device generates a master key and a transmission cycle after sending the connection request, as in S25 in fig. 2; the method comprises the following steps that a slave device receives a connection request from a master device, and the slave device receives virtual connection parameters sent by the master device on a channel set by the connection request according to the connection request, wherein the virtual connection parameters comprise: the master address, the slave address, the second type broadcast period, the master key, and the broadcast channel of the virtual connection, as in S26 in fig. 2, transmit the virtual connection parameters. The slave device confirms that the pairing is successful according to the received virtual connection parameters, such as S27 in fig. 2, and sends confirmation of the virtual connection parameters; the slave device records the address of the master device, the key of the slave device, the transmission channel, and immediately disconnects the actual connection with the master device after the second type of broadcast period, such as S28 in fig. 2, saves the virtual connection parameters, and disconnects the connection; the slave device generating a target key using the stored slave device key and the received master device key and encrypting the payload in the second type broadcast using the target key, as at S29 in fig. 2, encrypting the payload; the slave device transmits the second type broadcast in the saved second type period, such as S30 in fig. 2; the master device generates a target key using the saved slave key and master key and decrypts the payload in the second type of broadcast using the target key, as in S31 in fig. 2, decrypting the payload.
Compared with the prior art, according to the data transmission method based on bluetooth low energy provided by the embodiment, when a plurality of slaves communicate with a master, the slaves transmit payloads with the master by using a method of sending timing broadcasts, only a short-term connection needs to be established between the masters and the slaves, and the master does not need to communicate data with the slaves in a polling manner, so that the method is not limited by communication between one master and a limited number of slaves in a Bluetooth Low Energy (BLE) protocol, so that one master can communicate with a plurality of slaves at the same time, and the number of slaves that the master can communicate is directly expanded. In the process, the master device and the slave device are only connected for a short time, and then the transmission of the effective load can be regarded as virtual connection, so that the BLE device does not need to keep the connection of a special communication channel for data transmission, the power consumption of the BLE device is reduced, and meanwhile, the slave device transmits data through the second type of broadcast, so that the data communication response speed is high, the communication time delay is reduced, and the communication is stable; and the broadcast communication mode is suitable for all devices complying with the low-power consumption Bluetooth (BLE) protocol, so that the cost of device improvement is reduced.
The second embodiment of the invention relates to a data transmission method based on low-power-consumption Bluetooth, which is mainly applied to main equipment in the low-power-consumption Bluetooth data transmission. The specific process is shown in fig. 3, and includes:
step 301: the master device receives broadcasts of a first type from the slave device.
Specifically, the first type of broadcast may include a slave device name. The master device listens for broadcast data on one or more broadcast channels defined by the Bluetooth Low Energy (BLE) standard, and when the slave device transmits a broadcast on the broadcast channel listened by the master device, the master device can receive the first type of broadcast transmitted by the slave device and can acquire information in the first type of broadcast.
It should be noted that the first type broadcast may be transmitted by a plurality of slave devices, the master device listens to the first type broadcast on one or more fixed frequency channels, and the master device may receive the first type broadcast transmitted by the plurality of slave devices as long as the wireless channels do not collide, where the number of slave devices is not limited.
Step 302: and sending the connection request and the virtual connection parameters to the slave device according to the slave device name.
Specifically, after receiving the first type of broadcast, the master device may determine the slave device initiating the connection according to the requirement and the slave device name in the first type of broadcast, and initiate a connection request to the slave device, for example, a master device a, 3 slave devices are slave devices No. 1 to No. 3, and the slave device name of the slave device No. 1 is: slave B, slave name of slave 2: slave C, slave name of slave 3: the slave device D, now the master device receives the first type broadcast sent by 3 slave devices, and the device name to be paired is: and the master device A determines that the paired slave device is the slave device number 1 according to the name by searching the slave device name in the first-class broadcast, and then sends a connection request to the slave device number 1. The connection request comprises the address of the master device, the slave device establishes communication connection with the master device according to the connection request, the master device sends parameters of virtual connection to the slave device when the communication connection is established, and the paired parameters comprise: a master device address, a slave device address, a second type broadcast period, a master device key and a virtually connected broadcast channel; the slave device confirms that the pairing is successful according to the received parameters, saves the address of the master device, the second type broadcast period, the connected broadcast channel and the master device key, and then disconnects the actual connection with the master device.
More specifically, the virtual connection parameters include a transmission period (i.e., a transmission period of the second type broadcast) and a transmission channel (transmission channel of the second type broadcast).
Note that the master device and the slave device establish a short-term actual connection, and the process after the pairing is completed is regarded as a virtual connection as described in the present embodiment.
Step 303: a second type of broadcast is received from the slave device.
Specifically, after receiving an acknowledgement for the virtual connection parameters from the slave device, a second type of broadcast from the slave device is received according to the virtual connection parameters. The master device, upon receiving the determination of the virtual connection parameters, may determine that the connection is established and thereafter receive broadcasts of the second type according to the transmission period and the transmission channel.
The main device will know the time for receiving the second type broadcast according to the stored second type broadcast period, and the main device can only work in the second type broadcast period to receive the second type broadcast. After the pairing is completed, the slave device sends a second type broadcast to the master device in a second type broadcast period according to the stored address information of the master device, wherein the second type broadcast comprises a payload, and the payload is data to be transmitted.
Step 304: the payload is parsed from the second type of broadcast.
Specifically, the master device may parse the payload according to the second type of broadcast format.
It should be noted that, in order to ensure the security of data transmission, the payload in the present embodiment is encrypted by the slave device using the target key before transmission, so correspondingly, the master device decrypts the payload in the second type broadcast using the target key. Wherein the target key is generated according to a pre-generated master device key and the slave device key.
Compared with the prior art, according to the data transmission method based on bluetooth low energy provided by the embodiment, when a plurality of slaves communicate with a master, the slaves transmit payloads with the master by using a method of sending timing broadcasts, only a short-term connection needs to be established between the masters and the slaves, and the master does not need to communicate data with the slaves in a polling manner, so that the method is not limited by communication between one master and a limited number of slaves in a Bluetooth Low Energy (BLE) protocol, so that one master can communicate with a plurality of slaves at the same time, and the number of slaves that the master can communicate is directly expanded. In the process, the master device and the slave device are only connected for a short time, and then the transmission of the effective load can be regarded as virtual connection, so that the BLE device does not need to keep the connection of a special communication channel for data transmission, the power consumption of the BLE device is reduced, and meanwhile, the slave device transmits data through the second type of broadcast, so that the data communication response speed is high, the communication time delay is reduced, and the communication is stable; and the broadcast communication mode is suitable for all devices complying with the low-power consumption Bluetooth (BLE) protocol, so that the cost of device improvement is reduced.
A third embodiment of the present invention relates to a slave device. As shown in fig. 4 in detail, the first transmitting module 41, the first receiving module 42 and the disconnecting module 43 are included, but not limited thereto.
A first transmitting module 41, configured to transmit the first type broadcast. And the virtual connection parameter is used for sending a second type of broadcast to the master equipment according to the virtual connection parameter, wherein the second type of broadcast comprises the effective load to be transmitted.
A first receiving module 42, configured to receive the connection request and the virtual connection parameter from the host device, respectively.
A disconnection module 43 for disconnecting the connection with the master device.
Specifically, the first transmitting module 41 in the slave device 4 transmits a first type of broadcast on a broadcast channel defined by the Bluetooth Low Energy (BLE) standard at a certain period, where the first type of broadcast may include: slave device name, first type broadcast period, and slave device address information. After receiving the first broadcast, the master device sends a connection request to the slave device 4 according to the device name of the slave device 4, and a first receiving module 42 in the slave device 4 receives the connection request from the master device, where the connection request includes address information and frequency hopping parameters of the master device; the pairing module 43 establishes connection according to the frequency hopping parameter in the connection request, meanwhile, the slave device 4 receives the pairing parameter, i.e. the virtual connection parameter, in the data channel for establishing connection, the pairing module 43 receives the pairing parameter sent by the master device, and the pairing parameter includes the master device address, the slave device address, the second type broadcast period, the master device key and the broadcast channel of the virtual connection; after the pairing module 43 successfully receives the virtual connection parameters, it confirms that the pairing is successful. The recording module 44 records address information of the master device and also records information in the first type of broadcast, such as a slave device key, that was last sent by the slave device 4. After the recording module 44 completes the address recording of the master device, the pairing module 43 disconnects the connection between the slave device 4 and the master device, and the first sending module 41 in the slave device 4 sends the second type of broadcast to the master device address recorded by the recording module 44 in the second type of broadcast period recorded by the recording module 44, where the second type of broadcast includes a payload to be transmitted.
It should be noted that the first type broadcast may further include a slave device key, and the slave device key may be a random key and generated by using a random number. It should be noted that the payload sent by the first sending module 41 is a payload encrypted by using a target key, and the target key is generated according to a pre-stored slave device key and the master device key.
The first type of broadcast may include: the method comprises the following steps of a slave device name, a first type broadcast period and a slave device key, wherein the number of the first type broadcasts is larger than 1, and the slave device keys in the first type broadcasts transmitted at least 2 times are different. That is to say, the slave device key may be generated once every other cycle by using a random number, the first sending module 41 in the slave device 4 sends the first type broadcast at a certain cycle, the master device initiates a connection request to the slave device 4 after monitoring the first type broadcast sent by the slave device 4, and the first receiving module 42 in the slave device 4 receives the connection request from the master device, where the connection request may include address information and a frequency hopping parameter of the master device; the pairing module 43 establishes a connection according to the frequency hopping parameter in the connection request, and the recording module 44 records the address information of the master device and also records information in the first type broadcast, such as a slave device key, sent by the slave device 4 last time. After the recording module 44 completes the address recording of the master device, the pairing module 43 disconnects the connection between the slave device 4 and the master device, the first sending module 41 in the slave device 4 encrypts the payload to be transmitted in the second type broadcast by using the target key, and after the encryption is completed, the first sending module 41 sends the second type broadcast to the master device in the second type period.
Compared with the prior art, according to the slave device provided by the embodiment, when a plurality of slave devices communicate with the master device, the slave device transmits the payload with the master device by using a method of sending timing broadcast, only short-term connection is required to be established between the master device and the slave device, and the master device does not need to perform data communication with the slave device by using a polling method, so that the limitation of communication between one master device and a limited number of slave devices in a low-power Bluetooth (BLE) protocol is avoided, one master device can simultaneously communicate with a plurality of slave devices, and the number of slave devices which can communicate with the master device is directly expanded. In the process, the master device and the slave device are only connected for a short time, and then the transmission of the effective load can be regarded as virtual connection, so that the BLE device does not need to keep the connection of a special communication channel for data transmission, the power consumption of the BLE device is reduced, and meanwhile, the slave device transmits data through the second type of broadcast, so that the data communication response speed is high, the communication time delay is reduced, and the communication is stable; and the broadcast communication mode is suitable for all devices complying with the low-power consumption Bluetooth (BLE) protocol, so that the cost of device improvement is reduced.
It should be understood that this embodiment is an example of the apparatus corresponding to the first embodiment, and may be implemented in cooperation with the first embodiment. The related technical details mentioned in the first embodiment are still valid in this embodiment, and are not described herein again in order to reduce repetition. Accordingly, the related-art details mentioned in the present embodiment can also be applied to the first embodiment.
A fourth embodiment of the present invention relates to a master device. As shown in fig. 5a, the first receiving module 61, the first sending module 62 and the processing module 63 are included, but not limited to.
A second receiving module 61, configured to receive the first type broadcast from the slave device. And the slave device is further configured to receive a second type of broadcast from the slave device according to the virtual connection parameters after receiving the confirmation for the virtual connection parameters from the slave device.
And a second sending module 62, configured to send the connection request and the virtual connection parameter to the slave device according to the slave device name.
A processing module 63, configured to parse the payload from the second type of broadcast.
Specifically, the second receiving module 61 in the master device 6 listens to a first type of broadcast of the slave device on one or several broadcast channels defined by the Bluetooth Low Energy (BLE) standard, where the first type of broadcast may include: slave device name, first type broadcast period, wherein the number of slave devices is not limited. After receiving the first type of broadcast, the second receiving module 61 obtains address information of the slave device according to the name of the slave device, and sends a connection request to the slave device of the address information, where the connection request includes address information of the master device, and after receiving the connection request, the slave device completes receiving virtual connection parameters, stores the address information of the master device, disconnects the slave device from the device 6, and sends a second type of broadcast to the master device 6, and the second receiving module in the master device 6 receives the second type of broadcast from the slave device, where the second type of broadcast includes a payload to be transmitted, and the processing module 63 parses the payload according to the second type of broadcast format.
It should be noted that the first type broadcast may further include a slave device key, and the slave device key may be a random slave device key generated by using a random number. The master device in this embodiment may also include, as shown in fig. 5b, a processing module 63, in addition to the modules in fig. 5a, including: decryption submodule 631.
A decryption sub-module 631, configured to decrypt the parsed payload using a target key, where the target key is generated according to a pre-stored master device key and the slave device key.
The first type of broadcast may include: slave device name, first type broadcast period and slave device key. The slave device key may be generated once every other cycle by using a random number, the second receiving module 61 in the master device 6 receives a first type of broadcast from the slave device on one or more Bluetooth Low Energy (BLE) broadcast channels, the second receiving module 61 in the master device 6 receives the first type of broadcast and stores a slave device address and a slave device key in the first type of broadcast, the second sending module 62 obtains address information of the slave device according to a slave device name, sends a connection request to a slave device of the address information, the connection request includes address information of the master device, the slave device sends a second type of broadcast to the master device 6 after the slave device successfully receives a virtual connection parameter, the second receiving module in the master device 6 receives the second type of broadcast from the slave device, wherein the second type of broadcast includes a payload to be transmitted, and the processing module 63 uses the target key, the payload in the second type of broadcast is decrypted.
Compared with the prior art, when the master device and the slave devices perform data communication, and when a plurality of slave devices communicate with the master device, the slave devices perform payload transmission with the master device by using a method of sending timing broadcast, only short-term connection needs to be established between the master device and the slave devices, and the master device does not need to perform data communication with the slave devices by using a polling method, so that the limitation of communication between one master device and a limited number of slave devices in a low-power Bluetooth (BLE) protocol is avoided, one master device can simultaneously communicate with the plurality of slave devices, and the number of slave devices which can communicate with the master device is directly expanded. In the process, the master device and the slave device are only connected for a short time, and then the transmission of the effective load can be regarded as virtual connection, so that the BLE device does not need to keep the connection of a special communication channel for data transmission, the power consumption of the BLE device is reduced, and meanwhile, the slave device transmits data through the second type of broadcast, so that the data communication response speed is high, the communication time delay is reduced, and the communication is stable; and the broadcast communication mode is suitable for all devices complying with the low-power consumption Bluetooth (BLE) protocol, so that the cost of device improvement is reduced.
It should be understood that this embodiment is an example of the apparatus corresponding to the second embodiment, and that this embodiment can be implemented in cooperation with the second embodiment. The related technical details mentioned in the second embodiment are still valid in this embodiment, and are not described herein again in order to reduce repetition. Accordingly, the related-art details mentioned in the present embodiment can also be applied to the second embodiment.
A fifth embodiment of the present invention relates to a bluetooth low energy-based data transmission system including slave devices as mentioned in the third embodiment and a master device as mentioned in the fourth embodiment, in which the number of slave devices is not limited, and the master device has at least one.
As shown in fig. 6, in the present embodiment, 5 slave devices (BLE device 2, BLE device 3, BLE device 4, and BLE device 5, respectively) and 1 master device (BLE device 1) are described as an example.
In this system, BLE device 2 transmits a first type of broadcast on three broadcast channels defined by the Bluetooth Low Energy (BLE) standard, BLE device 1 receives the first type of broadcast transmitted from BLE device 2, and BLE device 1 may also receive a second type of broadcast transmitted by successfully paired BLE device 6 on a specific broadcast channel, where the BLE device 1 and BLE device 2 interaction time does not overlap with the BLE device 1 and BLE device 6 interaction time.
When the BLE device 1 receives broadcast information from the BLE device 2 and the BLE device 6, the BLE device 1 may also initiate a connection request to the BLE device 3 on the broadcast channel, where the connection request includes address information of the BLE device 1; virtual connection parameters may also be transmitted with the BLE device 4 that has established an actual connection, where the virtual connection parameters may include an address of the BLE device 1, an address of the BLE device 4, a broadcast period of the second class, a master device key of the BLE device 1, and a broadcast channel of the virtual connection. Wherein the BLE device 1 and the BLE device 3 interaction time is not overlapped with the BLE device 1 and the BLE device 4 interaction time.
The BLE device 1 and the BLE device 5 are in a virtual connection state, at this time, the BLE device 5 may send the second type of broadcast to the BLE device 1, may not send the second type of broadcast, and may directly send data through a designated broadcast channel by the BLE device 2 when data transmission is needed.
It should be noted that in the data transmission system based on bluetooth low energy, one slave device can also communicate with a plurality of master devices.
It should be noted that each module referred to in this embodiment is a logical module, and in practical applications, one logical unit may be one physical unit, may be a part of one physical unit, and may be implemented by a combination of multiple physical units. In addition, in order to highlight the innovative part of the present invention, elements that are not so closely related to solving the technical problems proposed by the present invention are not introduced in the present embodiment, but this does not indicate that other elements are not present in the present embodiment.
Those skilled in the art can understand that all or part of the steps in the method of the foregoing embodiments may be implemented by a program to instruct related hardware, where the program is stored in a storage medium and includes several instructions to enable a device (which may be a single chip, a chip, etc.) or a processor (processor) to execute all or part of the steps of the method described in the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.
It will be understood by those of ordinary skill in the art that the foregoing embodiments are specific examples for carrying out the invention, and that various changes in form and details may be made therein without departing from the spirit and scope of the invention in practice.