Detailed Description
Various exemplary embodiments, features and aspects of the present disclosure will be described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers can indicate functionally identical or similar elements. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The word "exemplary" is used exclusively herein to mean "serving as an example, embodiment, or illustration. Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments.
Furthermore, in the following detailed description, numerous specific details are set forth in order to provide a better understanding of the present disclosure. It will be understood by those skilled in the art that the present disclosure may be practiced without some of these specific details. In some instances, methods, means, elements and circuits that are well known to those skilled in the art have not been described in detail so as not to obscure the present disclosure.
Fig. 1 shows a schematic diagram of a CAN extended identifier allocation scheme of a data frame according to an example of the present disclosure.
The CAN extension identifier of the data frame shown in fig. 1 may be assigned as: the data frames are characterized in that bits 1 to 3 are reserved sections, bits 4 to 11 are frame type description sections, bit12 is a frame direction section, bit13 is a main equipment mark section, bit14 is a sub-packet mark section, bit15 is a sub-packet end mark section, bits 16 to 21 are data sub-packet number sections, and bits 22 to bit29 are frame address sections.
For example, referring to table 1 below, a description table of a data frame field of the present disclosure is shown.
The reserved segment may be a field reserved for an extended function of a subsequent data frame; the frame type description section may be a field for describing a specific function of the data frame; the frame direction segment may be a field for describing a transmission direction of the data frame, for example: the transmission direction can be a master station-slave station direction or a slave station-master station direction; the master device identifier segment may be a field for identifying a relationship between the data frame and the master device, for example: when the main equipment mark segment is '1', determining the data frame as a data frame sent by the main station or sent to the main station; the sub-packet flag segment may be a field for identifying whether the data frame is a sub-packet data frame; the end of packet flag segment may be a field for identifying whether the data frame is the last packet of the packetized data frame, for example: the data packet is 3 data frames, the third data frame is the last packet of data frame, the packet end flag segment of the data frame can be set to 0, and the packet end flag segments of the other two data frames can be set to 1; the data sub-packet number segment may be a field for identifying a packet number of a data frame, for example, the three data packets may respectively identify the data sub-packet number segment as 1, 2, and 3 in sequence; the frame address field may be a field identifying an address of the data frame, and upper 4 bits of the frame address field may be an address field indicating a slave station and lower 4 bits may be an address field indicating a sensor.
TABLE 1
When the master station needs to perform business operations such as acquisition, configuration or control on data of the slave station or the sensor, the master station may send a data frame to the slave station or the sensor through the CAN network, for example: when the master station collects, configures or controls the data of the slave station, the upper 4 bits of the frame address of the data frame may be set as the address of the slave station, and the lower 4 bits may be set as a specific address (the specific address may be used to indicate that the data frame needs to be processed by the current slave station, for example, the specific address may be 0); when the master station collects, configures or controls the data of the sensor, the upper 4 bits of the frame address of the data frame can be set as the address of the slave station connected with the target sensor, and the lower 4 bits can be set as the address of the target sensor, so that after the slave station receives the data frame, the data frame is sent to the target sensor according to the target sensor address of the lower 4 bits.
When the sensor responds to the operations of data acquisition, configuration or control and the like of the master station or the slave station, a data frame CAN be sent to the slave station through the CAN network, for example: the master device flag segment of the data frame may be set to 0 when the sensor responds to data acquisition, configuration or control operations from the station; when the sensor responds to data acquisition, configuration or control operation of the master station, the master device flag segment of the data frame can be set to 1; the slave station CAN process the data frame when the main equipment mark segment of the data frame is 0, and CAN send the data frame to the master station through the CAN network when the main equipment mark segment of the data frame is 1.
The allocation manner shown in fig. 1 is only one example of the disclosure, and the number of bits and the relative position relationship of each field of the CAN extended identifier may be set according to actual requirements, and the disclosure is not limited in any way.
According to the CAN extended identifier distribution mode of the data frame, provided by the disclosure, bidirectional data communication CAN be completed through the frame direction section and the frame address section, a two-layer CAN communication network is changed into a one-layer communication network, direct communication between a master station and a sensor under a slave station is completed through a set of protocol, the communication efficiency is improved, the number of identifiers used CAN be reduced, the use efficiency of the CAN identifiers is improved, and the reliability of a system is improved; the complexity of program processing is reduced by setting the main equipment mark section; by setting the reserved section, the flexibility and configurability of the CAN data frame are improved.
Fig. 2 shows a flowchart of a CAN bus data processing method according to an embodiment of the present disclosure. The method CAN be applied to a slave station of a CAN communication network, and the CAN network also comprises a master station and a sensor.
As shown in fig. 2, the CAN bus data processing method includes:
step 201, receiving a data frame from a CAN network; the data frame comprises a frame direction field and a frame address field, and the frame address field comprises a first address field and a second address field.
The slave station may receive a data frame sent by the master station or the sensor, where the data frame may be a data frame sent by the master station to the slave station when the master station performs business operations such as collecting, configuring, and controlling data of the slave station or the sensor, or may be a data frame sent by the sensor to the slave station through the CAN network when the sensor responds to operations such as collecting, configuring, and controlling data of the master station or the slave station.
The slave station can determine whether the data frame is from the master station or the sensor according to the frame direction section of the received data frame, and further determine the processing mode of the data frame according to the frame address section, so that the slave station can complete bidirectional communication with the master station and the sensor according to the frame direction section and the frame address section, and the communication efficiency is improved.
The frame direction segment is a field for identifying a transmission direction of the data frame, and the frame direction segment can identify two different transmission directions of the data frame by two values (e.g., 0 and 1), where the transmission direction can be a master-slave direction or a slave-master direction, for example, when the value of the frame direction segment is a first value, it indicates that the data frame is from the master station, and the transmission direction of the data frame is the master-slave direction; when the value of the frame direction segment is a second value, the data frame comes from the sensor, and the transmission direction of the data frame is the slave station-master station direction.
In a possible implementation manner, the frame direction segment may be 1bit, the first value may be "1", the second value may be "0", and when the value of the frame direction segment is "1", it indicates that the data frame is from the master station, and the transmission direction of the data frame is the master station-slave station direction; when the value of the frame direction segment is "0", it indicates that the data frame is from the sensor, and the transmission direction of the data frame is the slave station-master station direction.
It should be noted that the first value may be "1", and the second value may be "0" merely as an example of the present invention, and is not to be construed as a limitation to the frame direction segment of the present invention, and actually, the first value may also be "0", and the second value is "1", and the embodiment of the present invention is not limited to this specifically.
In the embodiment of the present invention, the frame address field is a field for identifying a source address or a destination address of a data frame, and when the data frame comes from a master station, the frame address field is used for identifying the destination address of the data frame; when the data frame comes from the sensor, the frame address field is used for identifying the source address of the data frame.
The frame address field may include a first address field and a second address field, which may be used to identify a slave station address and a sensor address, respectively, for example, the first address field may represent a slave station address, and the second address field may represent a sensor address under a particular slave station. The address of the frame address field represented when the lower four bits are 0 is the slave station address, such as 0x10,0x20 … 0xf0 represents the slave station address; the lower four bits are 1-15 to indicate the address is the sensor address, such as 0x11-0x1f, 0x21-0x2f, 0x31-0x3 f.
It is to be understood that the first address field identifies the slave station address, and the second address field identifies the sensor address, which is only an example of the embodiment of the present invention, and actually, the first address field may also identify the sensor address, and the second address field identifies the slave station address, which is not limited in this embodiment of the present invention.
In a possible implementation manner, the frame address field may be 8 bits, where the upper 4 bits of the frame address field may represent the first address field, the lower 4 bits of the frame address field may represent the second address field, for example, the frame address field is "00100001", and the upper 4 bits are the first address "0010" indicating that the slave station address is "0010", and the lower 4 bits "0001" are the second address field indicating that the sensor address is "0001".
Step 202, determining the value of the frame direction segment when the address of the first address segment of the frame address segment is the local address.
The slave station acquires the address of the first address field of the frame address field from the data frame, if the address of the first address field is the same as the local address of the slave station, the slave station indicates that the data frame needs to be processed by the current slave station, and the slave station can further determine the value of the frame direction field to determine the next operation; if the first address field is not the same as the slave's local address, indicating that the slave does not need to process the data, the data frame may be discarded directly.
For example, referring to fig. 3, there is shown a schematic structural diagram of a CAN communication network according to an example of the present invention, which includes a master station, a slave station 1 connected to the master station in a CAN network 1, a slave station 2 … …, a sensor 1 connected to the slave station 1 in the CAN network 2, a sensor 2 … … sensor N, a sensor 1 connected to the slave station 2 in the CAN network 3, a sensor 2 … … sensor m, a sensor 1 connected to the slave station N in the CAN network N, a sensor 2 … … sensor x, 8 bits in total of bit22 to bit29 of a data frame in this example may be defined as the frame address field, wherein the upper 4 bits of the frame address segment are the first address segment, the extended frame identifiers bit22 through bit29 of the data frame have the value of "00100001", the address of the first address segment of the upper 4 bits is "0010", since the address of the slave 3 is "0011" which is different from the address of the first address field, the slave 3 does not process the data frame; the address of the slave 2 is "0010", and the slave 2 needs to process the data frame as the address of the first address field, so that the slave 2 can determine the value of the frame direction field of the data frame.
In the embodiment of the present invention, the slave station is described by taking an example that the first address field of the frame address field identifies the slave station address, and actually, in another possible implementation manner, the second address field of the frame address field may identify the slave station address, and the slave station determines the value of the frame direction field in the case that the address of the second address field of the frame address field is a local address.
Step 203, determining the address of the second address field when the value of the frame direction field is the first value.
When the value of the frame direction field is determined to be the first value, for example, the value of the frame direction field is 1, which indicates that the data frame is from the master station, the transmission direction of the data frame is the master-slave station direction, the data frame received by the slave station is transmitted by the master station, and the slave station needs to process the data frame. The address of the second address field may be a specific address, and when the address of the second address field is the specific address, the data frame is a data frame which is sent by the master station to the slave station for processing; when the address of the second address field is not a specific address, it indicates that the data frame is a data frame processed by the sensor corresponding to the address sent by the master station to the second address field, and the slave station needs to forward the data frame.
And 204, sending the data frame to a sensor corresponding to the second address field under the condition that the address of the second address field is not a specific address.
According to the above description, if the slave station determines that the address of the second address field of the data frame is not a specific address, it may determine that the data frame is a data frame that the master station transmits to the sensor process corresponding to the address of the second address field, and the slave station forwards the data frame to the sensor corresponding to the address of the second address field.
For example, in the CAN communication network shown in fig. 2, the values of bit22 to bit29 of the data frame received from the station 3 are "00100001", the address of the station 2 is "0010", the address is the same as the address of the first address field, the address of the second address field is further determined, the address of the second address field is determined to be "0001", and the data frame is sent to the sensor corresponding to the address "0001".
In this way, the slave station can determine the transmission direction of the data frame according to the value of the frame direction field of the received data frame, and determine the source address or the target address of the data frame by combining the transmission direction of the data frame and the frame address field so as to perform corresponding processing operation on the data frame. Because the field occupied by the frame direction segment and the frame address segment is less, the CAN bus data processing method according to the embodiment of the disclosure completes the bidirectional communication of data through a small number of fields, CAN improve the utilization rate of the CAN identifier, and further improves the communication efficiency of the CAN communication network.
Fig. 4 shows a flowchart of a CAN bus data processing method according to an embodiment of the present disclosure.
In a possible implementation manner, the data frame further includes a frame type description segment, and referring to fig. 4, the method further includes:
step 205, processing the data frame according to the frame type description segment when the address of the second address segment is a specific address.
The frame type specification segment may be a field for identifying a function of the data frame, for example: the value of the frame type description section is '01000100', and the specific function of determining the data frame is as follows: read data 0x 44. When the address of the second address field is a specific address, it means that the data frame is a data frame that the master station transmits to the slave station for processing, and the slave station processes the data frame according to the frame type description field, for example: when the value of the frame type specification section is "01000100", the slave station reads its own data and transmits the read data to the master station by transmitting back a plurality of data frames.
In a possible implementation manner, the data frame further includes a master device flag segment, and referring to fig. 5, a flowchart of a CAN bus data processing method according to an embodiment of the present disclosure is shown, where the CAN bus data processing method shown in fig. 5 further includes:
step 206, determining the value of the main device flag segment under the condition that the value of the frame direction segment is a second numerical value;
and step 207, when the value of the main device flag segment is a third numerical value, sending the data frame to the main station.
And 208, when the value of the main equipment mark section is a fourth numerical value, processing the data frame according to the frame type description section.
The data frame further includes a main device identification section, where the main device identification section may be a field for identifying a relationship between the data frame and the main station, and the main device identification section may identify a relationship between the data frame and the main station by two values, and when the main device identification section is a third value, it may indicate that the data frame is related to the main station (a data frame sent by the main station or a data frame sent to the main station); when the value of the master flag field is the fourth value, it may indicate that the data frame is not associated with the master station (the data frame sent by the sensor to the slave station).
In a possible implementation manner, the master device flag segment may be 1bit, the third value may be "1", and when the value of the master device flag segment is "1", it indicates that the data frame is related to the master station; when the value of the master device flag field is "0", it indicates that the data frame is not related to the master station.
It should be noted that the third value may be "1" merely as an example of the present invention, and is not to be understood as a limitation to the frame direction segment of the present invention, and actually, the third value may also be "0", and the embodiment of the present invention is not limited to this specifically.
When the value of the frame direction segment is the second value, for example, the value of the frame direction segment is 0, it is described that the data frame is from the sensor, and the data frame may be a data frame transmitted by the sensor to the slave station or a data frame transmitted by the sensor to the master station.
When the main equipment mark section is a third numerical value, determining that the data frame is related to the main station, namely the data frame which is sent to the main station by the sensor for processing; and when the mark segment of the master device is the fourth numerical value, determining that the data frame is irrelevant to the master station, namely the data frame which is sent to the slave station for processing by the sensor. For example: when the frame direction segment of the data frame received by the slave station 3 is "0" and the master device flag segment is "1", it can be determined that the data frame is related to the master station, that is, the data frame is sent to the master station for processing by the sensor, and the slave station 3 can send the data frame to the master station; when the master device flag field is "0", it may be determined that the data frame is not related to the master station, that is, the data frame is a data frame sent by the sensor to the slave station for processing, and the slave station 2 may process the data frame according to the frame type description field. According to the data communication method and device, the data communication efficiency can be improved and the complexity of communication processing can be reduced through the main equipment identification section.
It should be noted that the fourth value may be "0" merely as an example of the present invention, and is not to be construed as a limitation to the frame direction segment of the present invention, and actually, when the third value is "0", the fourth value may also be "1", and the embodiment of the present invention is not limited to this specifically.
Fig. 6 shows a flowchart of a CAN bus data processing method according to an embodiment of the present disclosure.
In one possible implementation, the data frame further includes: the method for processing the CAN bus data shown in fig. 6 further includes:
step 209, determining the value of the packet flag segment;
step 210, determining the value of the packetization end flag segment when the value of the packetization flag segment is a fifth numerical value;
step 211, continuing to receive the data frame from the CAN network under the condition that the value of the subpackage ending mark segment is a sixth numerical value;
step 212, merging the received data frames according to the data packet number segment when the value of the packet end flag segment is a seventh value.
The sub-packet flag segment may be a field for identifying whether the data frame is a sub-packet data frame, and the sub-packet flag segment may respectively identify that the data frame is a sub-packet data frame and that the data frame is a non-packet data frame by two values, for example, when the value of the sub-packet flag segment is a fifth value, it may be determined that the data frame is a sub-packet data frame, and it is necessary to receive all related sub-packet data frames, and the whole data can be obtained after the sub-packet data frames are combined; when the value of the packet flag segment is not the fifth value, it may be determined that the data frame is not a packet data frame, and the data frame may be directly processed according to the frame type specification segment. For example: when the value of the packetization flag segment is "0", it may be determined that the data frame is a packetized data frame; when the value of the packetization flag is "1", it can be determined that the data frame is a non-packetized data frame.
It should be noted that, when the value of the packetization flag is "0", it can be determined that the data frame is a packetized data frame; when the value of the packetization flag segment is "1", the data frame may be determined to be a non-packet data frame, which is merely an example of the present invention and is not to be understood as a limitation to the packetization flag segment of the present invention, and actually, when the value of the packetization flag segment is "1", the data frame may also be determined to be a packetized data frame; when the value of the packetization flag segment is "0", the data frame may be determined to be a non-packet data frame, or other values may be used, which is not particularly limited in the embodiment of the present invention.
When the value of the packetization flag segment is a fifth numerical value, the slave station may determine that the data frame is a packetized data frame, and the slave station may continue to determine the value of a packetization end flag segment of the data frame, the packetization end flag segment being a field that identifies whether the data frame is a data frame of a last frame of the packetization, and the packetization end flag segment may be a value that identifies whether each data frame is a last frame of the packetization, and for example, when the value of the packetization end flag segment is a sixth numerical value, it may be determined that the data frame is not a last frame of the packetization, the slave station may continue to receive other data frames, and when the value of the packetization end flag segment is a seventh numerical value, it may indicate that reception of a data frame has been completed, and may combine a plurality of the received data frames in accordance with the data packetization number segment. For example: when the value of the packetization end flag segment is "1", it may be determined that the data frame is not the last frame of the packetized data, and the slave station may continue to receive the data frame; until receiving a data frame with a packet end flag segment value of "0", the slave station may combine a plurality of received data frames according to the data packet number segment.
The data sub-packet number segment is a field for identifying the packet number of the data frame, and may be a numerical value starting from 1, and the slave station may sort and integrate the received multiple data frames according to the data sub-packet number segment to obtain a complete data.
In a possible implementation manner, the data frame packetization control field may be 8 bits, wherein the packetization flag segment may be 1bit, the packetization end flag segment may be 1bit, and the data packet numbering segment may be 6 bits.
It should be noted that, after receiving the data frame sent from the slave station, the sensor may process the data frame according to the frame type description segment and respond to the slave station, for example, the sensor determines that the specific function of the data frame is read data according to the frame type description segment, and after loading data in the data portion, the sensor sends the data frame loaded with the data as a reply data frame to the slave station.
In order to better understand the invention for those skilled in the art, the invention is described below by referring to a specific example of a CAN communication network shown in fig. 3:
example 1, referring to table 2, a description of a CAN extended identifier of a CAN data frame according to an example of the present disclosure is shown.
TABLE 2
After receiving the CAN data frame from the CAN network 1, the slave station 2 judges that the data is processed by the slave station according to the high four bits of the frame address field, and then processes and responds, and the slave stations in other CAN networks 1 do not process the CAN frame data because the addresses do not accord with each other.
After the slave station 2 receives the data frame, it determines the data frame as the data sent by the master station to the slave station 2 for processing according to the lower 4 bits "0000" of the frame address field, and further determines the specific function as follows according to the frame type description field: reading data, so the CAN frame CAN have no loaded data part, and the slave station 2 reads the corresponding data and responds to the master station by replying to the data frame.
Referring to table 3, a CAN extended identifier description of a reply data frame transmitted from the station 2 to the master station is shown.
TABLE 3
The load data part of the CAN data frame is response data, and if the response data is longer, the sub-packet processing CAN be carried out according to the specification of the frame ID. The slave station 2 transmits the responded data to the CAN network 1, and the master station CAN receive the responded CAN frame data through the CAN network 1.
Example 2, referring to table 4, a description of a CAN extended identifier of a CAN data frame according to an example of the present disclosure is shown.
TABLE 4
After receiving the CAN data frame from the CAN network 1, the slave station 2 judges whether the data is processed by the slave station according to the high four bits of the frame address field, and then processes or responds, and the slave stations in other CAN networks 1 do not process the CAN frame data because the addresses do not accord with each other.
After receiving the data frame, the slave station 2 determines that the data frame is data which is sent by the master station to be processed by the sensor according to the lower 4 bits "0001" of the frame address field, and sends the data frame to the sensor in the CAN network 3.
After receiving the CAN data frame from the CAN network 3, the sensor 1 judges that the data is processed by the station according to the frame address field, and then processes and responds, and the sensors in other CAN networks 3 do not process the CAN frame data because the addresses do not conform.
The sensor 1 further determines the specific functions according to the frame type description segment as follows: reading data, so the CAN data frame CAN have no load data part, and the sensor 1 reads the corresponding data and responds to the master station by replying to the data frame.
Referring to table 5, there is shown an identifier description of the reply data frame for the master station that sensor 1 transmits to slave station 2.
TABLE 5
The load data part of the CAN data frame is the response data, if the response data is longer, the data packet number section CAN be set according to the specification of the frame ID, and the packet processing is carried out.
After receiving the CAN data frame from the CAN network 3, the slave station 2 judges the data frame sent to the master station by the data frame according to the "master device flag segment", so that the CAN data frame is directly forwarded to the CAN network 1, and the master station CAN receive the responded CAN frame data by the CAN network 1.
Fig. 7 shows a block diagram of a CAN bus data processing apparatus 800 according to the present disclosure, which is applied to a slave station in a CAN network, where the CAN network further includes a master station and a sensor, and the apparatus includes: a first receiving module 801, a first determining module 802, a second determining module 803, and a first transmitting module 804; wherein,
a first receiving module 801, which may be used to receive a data frame from a CAN network; the data frame comprises a frame direction field and a frame address field, and the frame address field comprises a first address field and a second address field;
a first determining module 802, configured to determine a value of the frame direction segment if an address of a first address segment of the frame address segment is a local address;
a second determining module 803, configured to determine an address of the second address field if the value of the frame direction field is the first value;
the first sending module 804 may be configured to send the data frame to a sensor corresponding to the second address field if the address of the second address field is not a specific address.
Fig. 8 shows a block diagram of a CAN bus data processing apparatus according to the present disclosure. In a possible implementation manner, the data frame further includes a frame type description segment, and referring to fig. 8, the apparatus further includes:
the first processing module 805 may be configured to, when the address of the second address field is a specific address, process the data frame according to the frame type specification field.
In a possible implementation manner, the data frame further includes a master device flag segment, and with reference to fig. 9, the apparatus further includes:
a third determining module 806, configured to determine a value of the master device flag segment if the value of the frame direction segment is a second value;
a second sending module 807, configured to send the data frame to the primary station when the value of the primary device flag segment is the third value.
In one possible implementation, referring to fig. 8, the apparatus further includes:
the second processing module 808 may be configured to, when the value of the master device flag segment is a fourth value, process the data frame according to the frame type specification segment.
In one possible implementation, the data frame further includes: the apparatus further includes a packetization flag section, a packetization end flag section, and a data packetization number section, referring to fig. 9:
a fourth determining module 809, which may be used to determine the value of the packetization flag segment;
a fifth determining module 810, configured to determine a value of the packetization end flag segment if the value of the packetization flag segment is a fifth numerical value;
a second receiving module 811, configured to continue to receive data frames from the CAN network when the value of the packetization end flag segment is a sixth value;
the combining module 812 may be configured to combine the received multiple data frames according to the data packet number segment if the value of the end-of-packet flag segment is a seventh value.
Fig. 9 is a block diagram illustrating a data processing apparatus 1900 for a CAN bus according to an example embodiment. For example, the apparatus 1900 may be provided as a server. Referring to fig. 9, the device 1900 includes a processing component 1922 further including one or more processors and memory resources, represented by memory 1932, for storing instructions, e.g., applications, executable by the processing component 1922. The application programs stored in memory 1932 may include one or more modules that each correspond to a set of instructions. Further, the processing component 1922 is configured to execute instructions to perform the above-described method.
The device 1900 may also include a power component 1926 configured to perform power management of the device 1900, a wired or wireless network interface 1950 configured to connect the device 1900 to a network, and an input/output (I/O) interface 1958. The device 1900 may operate based on an operating system stored in memory 1932, such as Windows Server, MacOS XTM, UnixTM, LinuxTM, FreeBSDTM, or the like.
In an exemplary embodiment, a non-transitory computer readable storage medium, such as the memory 1932, is also provided that includes computer program instructions executable by the processing component 1922 of the apparatus 1900 to perform the above-described methods.
The present disclosure may be systems, methods, and/or computer program products. The computer program product may include a computer-readable storage medium having computer-readable program instructions embodied thereon for causing a processor to implement various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical wires.
The computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to a respective computing/processing device, or to an external computer or external storage device via a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing/processing device.
The computer program instructions for carrying out operations of the present disclosure may be assembler instructions, Instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, the electronic circuitry that can execute the computer-readable program instructions implements aspects of the present disclosure by utilizing the state information of the computer-readable program instructions to personalize the electronic circuitry, such as a programmable logic circuit, a Field Programmable Gate Array (FPGA), or a Programmable Logic Array (PLA).
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.