This disclosure relates to a computer-implemented system and method for the passive monitoring and reporting of printer-related data on USB cables and relaying the data to a printer reporting system.
Methods for detecting and compiling data relating to printer actions are known in the industry. Existing methods, however, often require the use of a designated computer within an established computer network that utilizes installed software for monitoring print events on the network. These methods suffer from several limitations, including the reliance on network administrators to perform a complex installation protocol, the need for customization, the need for compatibility and functionality within a variety computer operating system environments, the use of a client's hardware and network to gather and report data, and the use of internal client bandwidth to report printer-related data.
Thus, a need exists in the industry for overcoming the limitations associated with the use of installed software on an existing network computer for the passive monitoring printer-related data.
This disclosure provides for a system and method for the passive monitoring of printer-related data and relaying the data to a printer-related data reporting system.
The disclosed system has several important advantages. For example, the present disclosure provides a system for monitoring printer data that is more user friendly, reliable, dependable, and easier to install than existing print data monitoring systems.
Another advantage of the present system is that it eliminates the need for installing software on existing computers for monitoring print job related data.
Yet another advantage of the present system is eliminating the need for administrative access to computers to install the system.
Still yet another possible advantage of the disclosed system is providing hardware powered by a USB line, eliminating the need for an external power supply and decreasing the likelihood that the system will go offline as the result of a loss of external power.
Another advantage of the present system may include permitting the collection of more robust print job related information, including but not limited to device specific information, number of pages printed, and mono and/or color toner levels.
Yet another advantage of the present disclosure includes providing a system that allows the hardware's internal software to be updated, configured, and or expanded remotely.
Still yet another advantage of the present invention is the ability to monitor printer-related data on a non-networked printer and computer.
For a more complete understanding of the present disclosure and its advantages, reference is now made to the following descriptions, taken in conjunction with the accompanying drawings, in which:
Similar reference numerals refer to similar parts throughout the several views of the drawings.
The present invention relates to a system and method for monitoring printer-related data on USB cables and relaying the data to a printer reporting system via a base station, wherein the monitoring is performed using hardware affixed to a USB cable. The various components of the present invention, and the manner in which they interrelate, are described in greater detail hereinafter.
The computer-implemented method and system may include, but are not limited to, the following steps. It will be appreciated by one skilled in the art that the order of steps presented herein may be performed in a different order. It will also be appreciated by one skilled in the art that the method and system described herein for monitoring and reporting printer-related data may include all, some, or none of the steps described herein.
Initially with reference to
With continued reference to
In an embodiment of the present disclosure, all USB data traffic between the workstation 2 and the non-networked printer 3 is monitored by the device 10. Specialized software on the device 10 parses the USB data traffic and looks up keywords that have particular meaning in connection with printing commands. See e.g.
In an embodiment of the present disclosure, all USB data traffic between the workstation 2 and the non-networked printer 3 is monitored by the device 10. Specialized software on the device 10 parses the USB data traffic and looks up keywords that have particular meaning in connection with printing commands. See e.g.
The device 10 is further configured to interrogate the non-network printer 3 for status or error information, without interrupting or interfering with the printing services. The device 10 can then transmit the information it has gathered, both through monitoring the USB data stream and querying the non-network printer 3, to the base station 4, preferably using a private network connection between the device 10 and the base station 4. In a preferred embodiment, the private network is a wireless Zigbee mesh network or WIFI. The base station 4 then reports this gathered information to a centralized server 7.
Passive USB Monitoring
As shown in
The token packets described above, as well as other relevant packet data, is used to determine the direction of data flow. If the direction is inbound to the workstation 2, the data packets that follow are assumed to be PJL (“Printer Job Language”) whereas, if the direction is outbound from the workstation 2, the data packets that follow are assumed to be PCL (“Printer Control Language”). The data packets are verified to be either PJL or PCL by parsing the string for “@PJ” for PJL and “!R!” for PCL. See
Once the data packet is properly determined to be either PJL or PCL, the packet is then string searched to find data of interest in step 105. See also
In a preferred embodiment, an internal lookup table or logic is maintained on the device 10 for storing strings of interest to be searched for. As mentioned above, this lookup table can be updated with a firmware update enabling the device 10 to monitor additional printers, or look for additional strings that were not initially installed on the device 10.
In a preferred embodiment, the microcontroller in the device 10 programs the FPGA to look for certain strings in the USB data. It also programs the FPGA to capture a number of bytes following the string. The FPGA interrupts the microcontroller once the string has been captured with the additional bytes it was programmed to capture. The microcontroller then parses the data to obtain printer-related data. This printer-related data can include the number of pages printed, the size of the page, number of copies requested, whether printing was performed duplex, and whether the printing was color or mono.
The microcontroller is preferably configured to run a state machine to determine what printer language is being used. The printer languages can be PJL, Postscript, PCL6, ZJS, and PCL5, or any other suitable printing language. The FPGA provides status to the microcontroller to assist the state machine in knowing when a print job has started and stopped and what printer language is running. The FPGA also provides other statuses for the purpose of counting pages. For PCL5, form feed counting is done in the FPGA. At the end of the PCL5 job, the number of form feeds (i.e. pages) is returned to the microcontroller.
When the state machine recognizes that a printer-related command is being transmitted, the microcontroller performs a string search for certain pre-identified strings, wherein the pre-identified strings relate to printer-data. For example, the following strings may be searched for the respective printer languages:
PJL Strings:
Postscript strings:
PCL 6 strings
ZJS strings
PCL5 Strings
Concerning the PCL 6 strings above, “1D” is used to locate page copies, while “j” is used to determine whether the printing is performed in color or mono. With ZJS strings, “JZJ” indicates little endian for parsing purposes, while “ZJZ” indicates big endian. Concerning the PCL5 strings, “esc & I” determines the number of copies, eject page, and paper size, while “esc & a” indicates whether printing is performed duplex.
With reference to
It will be understood by those of skill in the art that flowcharts and block diagrams herein described may illustrate architecture, algorithms, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments. Therefore, it will be understood that each block in the flowchart or block diagram may represent a module, segment, or portion of code, which comprises one or more executable computer program instructions for implementing the specified logical function or functions. Further, some implementations may include the functions in the blocks occurring out of the order as herein presented. By way of non-limiting example, two blocks shown in succession may be executed substantially concurrently, or the blocks may at times be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and flowcharts, and combinations of blocks in the block diagram and flowchart illustrations, may be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer program instructions.
The system includes one or more processing devices, which may be any computer processing unit, and could be a single central processing unit, or a number of processing units configured to operate either in sequence or in parallel. The processing device can be configured to execute software processes which implement the steps disclosed herein. The system may also include a memory capable of storing the steps necessary for a processing device to implement the steps disclosed herein. This memory could be in the form of memory resident within the processing device or in the form of standalone memory coupled to the processing unit via a communication path, such as a bus or a network.
Although this disclosure has been described in terms of certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.
This application is a continuation-in-part of application Ser. No. 14/621,616, filed Feb. 13, 2015, entitled “System and Method for the Passive Monitoring and Reporting of Printer-Related Data on USB Cables,” and is a continuation-in-part of application Ser. No. 14/622,011, filed Feb. 13, 2015, entitled “System and Method for Monitoring Printer-Related Data on USB Cables,” and claims priority to U.S. Provisional Patent Application Ser. No. 61/939,403, filed Feb. 13, 2014, entitled “System and Method for Monitoring Printer-Related Data on USB Cables,” U.S. Provisional Patent Application Ser. No. 61/939,365, filed Feb. 13, 2014, entitled “System and Method for the Passive Monitoring and Reporting of Printer-Related Data on USB Cables,” U.S. Provisional Patent Application Ser. No. 61/939,374, filed Feb. 13, 2014, entitled “System and Method for the Near Field Communication Pairing of Components of a Printer-Related Data Reporting System,” U.S. Provisional Patent Application Ser. No. 61/939,388, filed Feb. 13, 2014, entitled “System and Method for the Barcode Pairing of Components of a Printer-Related Data Reporting System,” and U.S. Provisional Patent Application Ser. No. 61/939,419, filed Feb. 13, 2014, entitled “System and Method for the Passive Monitoring and Reporting of Network Content on USB Cables,” the contents of which are fully incorporated by reference herein for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
5917808 | Kosbab | Jun 1999 | A |
6434643 | Ejiri | Aug 2002 | B1 |
6982953 | Swales | Jan 2006 | B1 |
7278579 | Loffredo et al. | Oct 2007 | B2 |
7511233 | Pocrass | Mar 2009 | B2 |
7520437 | Daniel et al. | Apr 2009 | B2 |
7630322 | Mohr | Dec 2009 | B2 |
7634670 | Nago et al. | Dec 2009 | B2 |
7706778 | Lowe | Apr 2010 | B2 |
7771133 | Oomura et al. | Aug 2010 | B2 |
7904941 | Jagadeesan et al. | Mar 2011 | B2 |
8014722 | Abel et al. | Sep 2011 | B2 |
8102799 | Alexander et al. | Jan 2012 | B2 |
8140062 | Hildner et al. | Mar 2012 | B1 |
8155012 | Austermann, III et al. | Apr 2012 | B2 |
8156206 | Kiley et al. | Apr 2012 | B2 |
8260896 | Trevíno et al. | Sep 2012 | B2 |
8321922 | Lo et al. | Nov 2012 | B1 |
8326707 | Fan et al. | Dec 2012 | B2 |
8368540 | Perkins | Feb 2013 | B2 |
8395486 | Sajadi et al. | Mar 2013 | B2 |
8416431 | Watanabe | Apr 2013 | B2 |
8418227 | Miller | Apr 2013 | B2 |
8675218 | Yamada | Mar 2014 | B2 |
8873460 | Kats et al. | Oct 2014 | B2 |
8991699 | Dixon et al. | Mar 2015 | B2 |
9002271 | Sakuda | Apr 2015 | B2 |
20020080393 | Leonard | Jun 2002 | A1 |
20020159419 | Morris | Oct 2002 | A1 |
20030030842 | Suyehira | Feb 2003 | A1 |
20030086368 | Limaye et al. | May 2003 | A1 |
20030229846 | Sethi | Dec 2003 | A1 |
20050015523 | Ishida | Jan 2005 | A1 |
20050071495 | Kadota | Mar 2005 | A1 |
20050253718 | Droms et al. | Nov 2005 | A1 |
20050254078 | Patton | Nov 2005 | A1 |
20050289257 | Fink | Dec 2005 | A1 |
20060019679 | Rappaport et al. | Jan 2006 | A1 |
20060028803 | Pocrass | Feb 2006 | A1 |
20060168207 | Choong et al. | Jul 2006 | A1 |
20070025313 | Bhagwat et al. | Feb 2007 | A1 |
20070030517 | Narayanan | Feb 2007 | A1 |
20070043859 | Ruul | Feb 2007 | A1 |
20070081486 | Koide | Apr 2007 | A1 |
20070097161 | Ejiri et al. | May 2007 | A1 |
20070104525 | Isshiki | May 2007 | A1 |
20070294457 | Gantman et al. | Dec 2007 | A1 |
20080005260 | Belimpaskis | Jan 2008 | A1 |
20080059211 | Brock et al. | Mar 2008 | A1 |
20080309966 | Scaff | Dec 2008 | A1 |
20080312944 | Scaff | Dec 2008 | A1 |
20090019224 | Pocrass | Jan 2009 | A1 |
20090138622 | Matzuzzi et al. | May 2009 | A1 |
20090257080 | Herrmann et al. | Oct 2009 | A1 |
20090303521 | Kumar | Dec 2009 | A1 |
20100014118 | Yamano | Jan 2010 | A1 |
20100039662 | Reddy et al. | Feb 2010 | A1 |
20100053668 | Huh | Mar 2010 | A1 |
20100054467 | Cho | Mar 2010 | A1 |
20100067631 | Ton et al. | Mar 2010 | A1 |
20100118330 | Feijoo et al. | May 2010 | A1 |
20100180051 | Harris | Jul 2010 | A1 |
20100254310 | Kats et al. | Oct 2010 | A1 |
20100265179 | Ram | Oct 2010 | A1 |
20110004920 | Ejima | Jan 2011 | A1 |
20110019222 | Tang et al. | Jan 2011 | A1 |
20110047596 | Miller | Feb 2011 | A1 |
20110066297 | Saberi et al. | Mar 2011 | A1 |
20110081860 | Brown et al. | Apr 2011 | A1 |
20110087565 | Fan et al. | Apr 2011 | A1 |
20110158217 | Meng | Jun 2011 | A1 |
20110184822 | Matkovic | Jul 2011 | A1 |
20110261391 | Oba | Oct 2011 | A1 |
20120045939 | Pocrass | Feb 2012 | A1 |
20120078548 | Salazar et al. | Mar 2012 | A1 |
20120214414 | Abel et al. | Aug 2012 | A1 |
20120221720 | Trevino et al. | Aug 2012 | A1 |
20120246359 | Scragg et al. | Sep 2012 | A1 |
20120262278 | Howarth et al. | Oct 2012 | A1 |
20130032634 | McKirdy | Feb 2013 | A1 |
20130054783 | Ge et al. | Feb 2013 | A1 |
20130141758 | Yoneda | Jun 2013 | A1 |
20130144765 | Gao et al. | Jun 2013 | A1 |
20130163046 | Narahashi et al. | Jun 2013 | A1 |
20130215467 | Fein et al. | Aug 2013 | A1 |
20130237152 | Taggat et al. | Sep 2013 | A1 |
20130290326 | Lebedev | Oct 2013 | A1 |
20140013015 | Chang | Jan 2014 | A1 |
20140229529 | Barone et al. | Aug 2014 | A1 |
20140268229 | Kempka | Sep 2014 | A1 |
Number | Date | Country |
---|---|---|
1126367 | Aug 2001 | EP |
1307823 | Dec 2006 | EP |
2012-059123 | Mar 2012 | JP |
10-2014-007571 | Jan 2014 | KR |
WO 2001098947 | Dec 2001 | WO |
WO 2002005107 | Jan 2002 | WO |
WO 2002086845 | Oct 2002 | WO |
WO 2007005956 | Jan 2007 | WO |
WO 2008027365 | Aug 2008 | WO |
WO 2009039604 | Apr 2009 | WO |
WO 2011044695 | Apr 2011 | WO |
WO 2012012846 | Feb 2012 | WO |
WO 2013003302 | Jan 2013 | WO |
WO 2013114398 | Aug 2013 | WO |
Entry |
---|
Total Phase, Inc., Overview of the Beagle USB Protocol Analyzers, Internet: <http://www.totalphase.com/solutions/apps/usb-analyzer-guide>, Apr. 15, 2013. |
Global Velocity, Inc., rapidDPI, Internet: <http://www.globalvelocity.com/products/rapiddpi-deep-packet-inspection/>, Jun. 3, 2013. |
TAMOSoft, NetResident, An Advanced Network Content Monitoring System That Displays All Network Events, Internet: <http://www.tamos.com/products/netresident/network-content.php, Jun. 3, 2013. |
ENAiKOON, Who Can Benefit from Near Field Communication Technology? Internet <http://www.nfc-tracker.com>, May 29, 2013. |
Printfleet, How It Works, Internet: <http://www.printfleet.com/products/>. |
FMaudit, Comparison, Internet <http://www.fmaudit/com/comparison/>, Apr. 15, 2013. |
FMaudti, WebAudits: Gather Meter Readings Without Software, Internet: <http://www.fmaudit.com/solutions/web/audits/>, Apr. 15, 2013. |
Number | Date | Country | |
---|---|---|---|
20160360045 A1 | Dec 2016 | US |
Number | Date | Country | |
---|---|---|---|
61939403 | Feb 2014 | US | |
61939365 | Feb 2014 | US | |
61939374 | Feb 2014 | US | |
61939388 | Feb 2014 | US | |
61939419 | Feb 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14621616 | Feb 2015 | US |
Child | 15172210 | US | |
Parent | 14622011 | Feb 2015 | US |
Child | 14621616 | US |