1. A liquid ejection head drive device that drives a liquid ejection head that ejects recording liquid droplets from a plurality of nozzles disposed in correspondence to a plurality of drive elements as a result of drive signal voltages being applied to the plurality of drive elements by a plurality of drive signal voltage generating units that are disposed in correspondence to the plurality of drive elements and generate drive signal voltages on the basis of printing data, the liquid ejection head drive device comprising:
a transfer unit that transfers printing data of a predetermined number of units of transfer data and outputs to the plurality of drive signal voltage generating units the printing data corresponding therewith; and
an output unit that acquires printing data from a plurality of predetermined positions that are on a transfer path of the transfer unit and are apart by the predetermined number of units of data and outputs the result of a comparison where the plurality of acquired printing data are compared.
2. The liquid ejection head drive device of claim 1, wherein the output unit outputs the result of the comparison where the plurality of acquired printing data are compared each time printing data of the predetermined number of units of data being transferred between the predetermined positions are transferred.
3. The liquid ejection head drive device of claim 2, wherein the plurality of predetermined positions comprise three or more predetermined positions disposed at equidistant intervals on the transfer path, and the output unit outputs the result of the comparison where the acquired plural printing data are compared each time printing data of the predetermined number of data units being transferred between adjacent predetermined positions are transferred.
4. The liquid ejection head drive device of claim 1, wherein the output unit comprises:
a plurality of parity data calculation units that calculate parity data of the printing data acquired from the plurality of predetermined positions; and
a comparison unit that compares the plurality of parity data calculated by the plurality of calculation units.
5. The liquid ejection head drive device of claim 2, wherein the output unit comprises:
a plurality of parity data calculation units that calculate parity data of the printing data acquired from the plurality of predetermined positions; and
a comparison unit that compares the plurality of parity data calculated by the plurality of calculation units.
6. The liquid ejection head drive device of claim 3, wherein the output unit comprises:
a plurality of parity data calculation units that calculate parity data of the printing data acquired from the plurality of predetermined positions; and
a comparison unit that compares the plurality of parity data calculated by the plurality of calculation units.
7. The liquid ejection head drive device of claim 1, wherein the output unit comprises:
a plurality of counter units that count the number of bits that are \u201c0\u201d or \u201c1\u201d in the printing data acquired from the plurality of predetermined positions; and
a comparison unit that compares a plurality of count values counted by the plurality of counter units.
8. The liquid ejection head drive device of claim 2, wherein the output unit comprises:
a plurality of counter units that count the number of bits that are \u201c0\u201d or \u201c1\u201d in the printing data acquired from the plurality of predetermined positions; and
a comparison unit that compares a plurality of count values counted by the plurality of counter units.
9. The liquid ejection head drive device of claim 3, wherein the output unit comprises:
a plurality of counter units that count the number of bits that are \u201c0\u201d or \u201c1\u201d in the printing data acquired from the plurality of predetermined positions and
a comparison unit that compares a plurality of count values counted by the plurality of counter units.
10. The liquid ejection head drive device of claim 1, wherein the transfer unit is configured to transfer the printing data in both directions.
11. The liquid ejection head drive device of claim 1, wherein when the acquired plurality of printing data do not match, the output unit outputs at least one of: a clearing instruction signal, instructing processing that clears all of the printing data in the transfer unit; an error signal, representing the fact that an error has occurred; or a power stop signal, instructing stopping of the supply of power to the drive device.
12. The liquid ejection head drive device of claim 2, wherein when the acquired plurality of printing data do not match, the output unit outputs at least one of: a clearing instruction signal, instructing processing that clears all of the printing data in the transfer unit; an error signal, representing the fact that an error has occurred; or a power stop signal, instructing stopping of the supply of power to the drive device.
13. The liquid ejection head drive device of claim 3, wherein when the acquired plurality of printing data do not match, the output unit outputs at least one of: a clearing instruction signal, instructing processing that clears all of the printing data in the transfer unit; an error signal, representing the fact that an error has occurred; or a power stop signal, instructing stopping of the supply of power to the drive device.
14. The liquid ejection head drive device of claim 4, wherein when the acquired plurality of printing data do not match, the output unit outputs at least one of: a clearing instruction signal, instructing processing that clears all of the printing data in the transfer unit; an error signal, representing the fact that an error has occurred; or a power stop signal, instructing stopping of the supply of power to the drive device.
15. The liquid ejection head drive device of claim 7, wherein when the acquired plurality of printing data do not match, the output unit outputs at least one of: a clearing instruction signal, instructing processing that clears all of the printing data in the transfer unit; an error signal, representing the fact that an error has occurred; or a power stop signal, instructing stopping of the supply of power to the drive device.
16. The liquid ejection head drive device of claim 10, wherein when the acquired plurality of printing data do not match, the output unit outputs at least one of: a clearing instruction signal, instructing processing that clears all of the printing data in the transfer unit; an error signal, representing the fact that an error has occurred; or a power stop signal, instructing stopping of the supply of power to the drive device.
17. The liquid ejection head drive device of claim 11, wherein the output unit outputs the at least one of the signals when the number of instances where the acquired plurality of printing data do not match continues a predetermined number of times.
18. The liquid ejection head drive device of claim 11, wherein a plurality of drive units that each include one of the transfer unit and one of the output unit are disposed inside the liquid ejection head, and the liquid ejection head drive device further comprises a signal output unit that calculates and outputs the logical sum of the signals outputted from the plurality of output units.
19. The liquid ejection head drive device of claim 17, wherein a plurality of drive units that each include one of the transfer unit and one of the output unit are disposed inside the liquid ejection head, and the liquid ejection head drive device further comprises a signal output unit that calculates and outputs the logical sum of the signals outputted from the plurality of output units.
20. A liquid ejection apparatus comprising:
a plurality of drive signal voltage generating units that are disposed in correspondence to a plurality of drive elements and generate drive signal voltages on the basis of printing data;
a liquid ejection head that ejects recording liquid droplets from a plurality of nozzles disposed in correspondence to the plurality of drive elements as a result of the drive signal voltages being applied to the plurality of drive elements by the plurality of drive signal voltage generating units; and
a drive device that drives the liquid ejection head, and comprises
a transfer unit that transfers printing data of a predetermined number of units of transfer data and outputs to the plurality of drive signal voltage generating units the printing data corresponding therewith, and
an output unit that acquires printing data from a plurality of predetermined positions that are on a transfer path of the transfer unit and are apart by the predetermined number of units of data and outputs the result of a comparison where the plurality of acquired printing data are compared.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. One or more computer readable media storing a software framework for an extensible software debugging application, said framework comprising:
a plurality of field objects, each field object representing an instance of a data type usable with a target software; and
at least one transport object providing a type of communication channel for communicating a value of one or more of the plurality of field objects with the target software.
2. The computer readable media of claim 1, wherein a first field object of the plurality of field objects is usable for providing input to the target software, and a second field object of the plurality of field objects is usable for receiving output from the target software.
3. The computer readable media of claim 1, wherein a first field object comprises a test data value store for storing values to use during testing of the target software, a formatter for formatting each test data value as expected by the target software, and a field value storing a formatted current test data value.
4. The computer readable media of claim 1, said framework further comprising a configuration file defining the at least one transport object and the plurality of field objects, and further defining test values for each field object, and further defining at least one test to perform against the target software, wherein the test comprises a sequence of events, wherein each event sends or receives a field object over a transport object.
5. The computer readable media of claim 4, wherein the configuration file defines one or more libraries in which the plurality of field objects and the at least one transport object are stored.
6. The computer readable media of claim 1, wherein a first field object exposes at least one application programming interface (API) to allow a user to define one or more test data values of the data type corresponding to the first field object.
7. The computer readable media of claim 6, wherein the first field object comprises a randomizer object to create semi-random test values of the data type corresponding to the first field object, said semi-random test values based on one or more user-specified criteria via one or more APIs.
8. The computer readable media of claim 7, wherein the first field object exposes a first API to allow a user to add to a test value store of the first field object a specific test data value of the data type corresponding to the first field object, resulting in the specific test data value as well as at least one random test data value based on the specific test data value being added to the test value store.
9. The computer readable media of claim 7, wherein the first field object exposes a first API to allow a user to add to a test value store of the first field object a range of test data values of the data type corresponding to the first field object, resulting in at least boundary values at an upper end of the range, boundary values at a lower end of the range, a random value inside the range, a random value above the range, and a random value below the range being added to the test value store.
10. The computer readable media of claim 6, wherein the first field object exposes a first API to allow a user to add to a test value store of the first field object a specific test data value defined by a mathematical expression based on at least one other field object.
11. The computer readable media of claim 10, wherein the mathematical expression is based on a current value of the at least one other field object.
12. The computer readable media of claim 10, wherein the mathematical expression is based on a property value of the at least one other field object.
13. The computer readable media of claim 1, wherein said framework comprises a TCP client transport object, a TCP server transport object, and a named pipe client transport object.
14. The computer readable media of claim 1, wherein said framework comprises a signed integer field object, an unsigned integer field object, and a string field object.
15. The computer readable media of claim 1, wherein said framework comprises a sequence field object (SFO), said SFO representing a sequence of data fields.
16. A method for testing user input and output of a target software program, said method comprising steps of:
(a) defining two field object classes, each field object representing a data type usable with a target software; and
(b) defining a transport object providing a type of communication channel for communicating a value of one or more of the plurality of field objects with the target software.
17. The method of claim 16, further comprising:
(c) creating a first instance based on one of the two field object classes;
(d) creating a second instance based on one of the two field object classes;
(e) populating a field value in the first instance;
(f) performing a test on the target software using the first and second instances.
18. The method of claim 17, wherein step (f) comprises:
(i) communicating to the target software via the transport object the field value of the first instance;
(ii) storing an output value, received from the target software over the transport object, as a field value of the second instance.
19. The method of claim 18, further comprising:
(g) creating a third instance based on one of the two field object classes,
wherein step (f) further comprises (iii) calculating a field value of the third instance based on the second instance.
20. The method of claim 17, wherein the first field object class comprises a sequence field object, and wherein step (e) comprises populating a plurality of field values in the first instance.