Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR MONITORING, DISPLAYING AND RECORDING BALLOON CATHETER INFLATION DATA
Document Type and Number:
WIPO Patent Application WO/1990/011040
Kind Code:
A2
Abstract:
An electronically controlled syringe system (14) for connection to a balloon catheter (10) or other balloon-type member and for automatically monitoring, displaying and recording inflation data when the syringe system (14) is used to inflate the balloon catheter (10) or other balloon-type member. A syringe (16) having a barrel (22) and a syringe plunger (24) is selectively operable to increase fluid pressure applied to the balloon catheter (10) or other balloon member by sliding the plunger (24) further into the barrel (22). Positive pressure applied to the balloon catheter (10) or member can be released by withdrawing the syringe plunger (24) toward the rear of the barrel (22). A piezoresistive semiconductor transducer (18) housed on the barrel (22) of the syringe (16) senses positive fluid pressure applied by the syringe (16). The electric signal output by the transducer (18) is input to a controller (20) where the signal is digitally processed so as to derive and record therefrom electronic data representing the magnitude of applied fluid pressure, and so as also to derive the length of time that positive fluid pressure is applied and the electronic data representing this information is automatically displayed and recorded. The controller (20) is also programmable to permit optional selection and input of various control parameters, such as a maximum positive inflation pressure that is to be applied, maximum duration for applying positive inflation pressure, initialization of the date and time of an inflation procedure and/or retrieving and displaying inflation data previously recorded for any prior inflation of the balloon catheter (10) or other balloon member.

Inventors:
FOOTE JERROLD L (US)
GILL DARLA R (US)
LAMPROPOULOS FRED P (US)
Application Number:
PCT/US1990/001331
Publication Date:
October 04, 1990
Filing Date:
March 12, 1990
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
MERIT MEDICAL SYSTEMS INC (US)
International Classes:
A61F2/958; A61M25/00; G01D9/00; (IPC1-7): A61B
Foreign References:
US4872483A1989-10-10
US4583917A1986-04-22
US4919121A1990-04-24
US4781192A1988-11-01
US4651738A1987-03-24
US4924877A1990-05-15
US4901731A1990-02-20
US4858615A1989-08-22
Other References:
See also references of EP 0467924A1
Download PDF:
Claims:
What is claimed is:
1. A system for monitoring inflation of a balloon type member and for automatically recording inflation data, comprising: a syringe connected to said member through tubing, said syringe comprising a barrel and a plunger selectively operable to inflate said member by applying fluid pressure to said member through said tubing by sliding the plunger within the barrel; transducer means for sensing said applied fluid pressure and for outputting an electrical signal proportional to said sensed fluid pressure, said transducer means being placed in fluid communication with said syringe and the tubing connected thereto; electronic circuit means, electrically connected to said transducer means, for receiving said electrical signal and for electronically processing said signal so as to derive and so as to automatically display or record therefrom electronic data representing the magnitude of said fluid pressure applied to said member and the length of time said positive fluid pressure is applied to said catheter; and display means, electrically connected to said electronic circuit means, for outputting a visual display of the magnitude of said applied fluid pressure and the corresponding length of time said pressure is applied to said member.
2. A system as defined in claim 1 wherein said transducer means comprises a piezoresistive semiconductor transducer.
3. A system as defined in claim 2 wherein said transducer is mounted to said syringe so as to form an integral part thereof.
4. A system as defined in claim 3 further comprising an electrical cable attached at one end thereof to said transducer and comprising at the other end thereof a connector for attachment to said electronic circuit means.
5. A system as defined in claim 4 wherein said cable comprises a first length permanently attached to said transducer mounted on said syringe, and a second length of cable detachably connected to the first length, such that after said cable is connected to said electronic circuit means, said syringe and first length of cable may be disconnected from said second length of cable at a point along said cable that is intermediate said syringe and said electronic circuit means.
6. A system as defined in claim 1 wherein said electronic circuit means comprises: means for amplifying said signal output by the transducer means; means for converting said amplified signal from an analog to a digital form; digital processor means for processing said digital form of said signal so as to derive therefrom digital data from which the magnitude of said applied pressure, the length of time said pressure is applied to said member, and whether the applied pressure is a first or a subsequent inflation of said member may be output in a numerical form; EET data memory means for storing the digital data derived by said digital processor means; and program memory means for storing machinereadable instructions utilized by said digital processor means to derive, store, retrieve and display said digital data and to optionally display a series of functions for selection at said display means. 0 7.
7. A system as defined in claim 1 wherein said electronic circuit means and said display means are housed within a controller.
8. A system as defined in claim 6 wherein said ,2 electronic circuit means and said display means are housed within a controller.
9. A system as defined in claim 8 wherein said controller comprises a control panel and wherein said 20 display means comprises a digital readout on said panel.
10. A system as defined in claim 9 wherein said display means further comprises means for outputting said digital data to a printer.*& 25.
11. A system as defined in claim 10 wherein said control panel comprises: first switch means for selecting a menu display for presentation at said digital readout of one or 0 more of the following optionally selectable functions: a. retrieving and reviewing all previously stored digital data; b. clearing all digital data previously stored in said data memory means; *& 35.
12. c. setting a maximum positive inflation pressure value; d. setting a maximum inflation time value; e. initializing date and time; f. selecting units of inflation pressure; g. printing data stored in said data memory means; and second switch means for entering to said digital processor means data identifying choices 0 selected with respect to any of said functions.
13. 12 A system for generating a series of discrete balloon catheter inflations and for automatically displaying and recording inflation data corresponding to each said discrete inflation, comprising: a control syringe connected to said balloon catheter through tubing, said syringe comprising a barrel and a plunger selectively operable to first apply and then remove positive fluid pressures to said balloon catheter through said tubing by sliding the plunger within the barrel; a piezoresistive semiconductor transducer connected in fluid communication with said fluid pressures applied to said balloon catheter such that said transducer senses fluid pressures applied to said balloon catheter and generates an electrical signal proportional to the sensed fluid pressure; and a controller electrically connected to said transducer, said controller comprising means for _ electronically processing said signal so as to automatically derive therefrom and store electronic data representing, for each discrete inflation of said balloon catheter, the inflation pressures sensed by said transducer and the duration of the sensed _ pressures, and display means for visually identifying SHEET a numerical value for each discrete inflation together with corresponding numerical values of said inflation pressures and duration thereof.
14. A system as defined in claim 12 wherein said transducer is mounted on said barrel so as to form an integral part thereof.
15. 0.
16. A system as defined in claim 12 wherein said means for electronically processing said signal comprises: means for amplifying said signal output by said transducer; means for converting said amplified signal from 5 an analog to a digital form; digital processor means for processing said digital form of said signal so as to derive therefrom digital data from which said magnitude of said applied inflation pressures, the length of time said inflation _ pressures are applied to said balloon catheter, and whether the applied inflation pressures correspond to a first or a subsequent inflation of said balloon catheter may be output in a numerical form; data memory means for storing the digital data 2_ derived by said digital processor means; and program memory means for storing machinereadable instructions utilized by said digital processor means to derive, store, retrieve and display said digital data and to optionally display a series of functions for selection at said display means.*& 30.
17. A system as defined in claim 14 wherein said display means comprises a digital readout and means for outputting said digital data to a printer.*& 35.
18. A system as defined in claim 15 wherein said controller further comprises: first switch means for selecting a menu display for presentation at said digital readout of one or more of the following optionally selectable functions: a. retrieving and reviewing all previously stored digital data; b. clearing all digital data previously stored in said data memory means; c. setting a maximum positive inflation pressure value; d. setting a maximum inflation time value; e. initializing date and time; f. selecting units of inflation pressure; g. printing data stored in said data memory means; and second switch means for entering to said digital processor means data identifying choices selected with respect to any of said functions.
19. In a system for generating a series of discrete balloon catheter inflations and for automatically recording inflation data derived from an electrical signal corresponding to each said discrete inflation, an improved control syringe comprising: a barrel connected through tubing to said balloon catheter; a plunger slidably mounted within said barrel and operable to selectively apply and then release fluid pressure on said balloon catheter by movement of the plunger within said barrel; and a piezoresistive semiconductor transducer mounted on said syringe barrel and in fluid communication with the interior of said syringe barrel such that changes EET in fluid pressure applied to said balloon catheter by sliding said plunger are sensed by said transducer, which in turn generates an electrical signal proportional to the sensed positive fluid pressure.
20. In a system comprising an inflatable balloon member connected through tubing to a syringe barrel and wherein a plunger slidably mounted within said barrel is moveable to selectively apply and then release fluid pressures exerted on said balloon member so as to selectively inflate said balloon member one or more times, a method of monitoring, displaying and automatically recording inflation data comprising the steps of: selectively increasing fluid pressure applied to the balloon member by pushing said plunger into said syringe barrel; sensing the fluid pressure applied by said syringe and outputting an electrical signal proportional to the sensed fluid pressure; electronically processing the output electrical signal so as to derive and automatically record therefrom electronic data representing the magnitude of the applied fluid pressures and the length of time said fluid pressures are applied to the balloon member; electronically outputting a visual display of the magnitude and the corresponding length of time that said fluid pressures are applied to the balloon member; and releasing the fluid pressure applied to the balloon member by pulling said plunger toward the rear of the syringe barrel.
21. A method as defined in claim 18 further comprising the step of repeating each of said steps in connection with a second inflation of the balloon member.
22. A method as defined in claim 18 wherein said step of electronically processing said signal comprises the steps of: amplifying said electrical output signal; lø converting said amplified signal from an analog to a digital form; digitally processing the digital form of said signal so as to derive therefrom digital data from which said magnitude of said applied fluid pressures, ,g the length of time said fluid pressures are applied to said balloon member and whether the applied fluid pressures correspond to a first or a subsequent inflation of said balloon member may be output in numerical form for each corresponding inflation of 2Q said balloon member; storing the digital data; and selectively retrieving and outputting said stored digital data in a form which can be visually perceived and read by an operator of the system.*& 25.
23. A method as defined in claim 18 further comprising the steps of: electronically selecting and storing a maximum magnitude of positive fluid pressure to be applied to 2Q said balloon member; and electronically outputting an indication to a system user that signals when said maximum fluid pressure is applied to said balloon member.*& 35.
24. ET 22 A method as defined in claim 18 or 20 further comprising the steps of: electronically selecting and storing a maximum duration for which said fluid pressures are to be applied to said balloon member; and electronically outputting an indication to a system user that signals when said maximum duration has been reached.
25. In a system comprising a balloon catheter connected through tubing to a syringe barrel and wherein by movement of a plunger through the barrel fluid pressure applied to the balloon catheter may be selectively increased or decreased, a method of electronically monitoring, displaying and recording the applied fluid pressure each time the balloon catheter is inflated, the method comprising the steps of: inflating the balloon catheter a first time by pushing the plunger into the syringe barrel so as to apply a positive inflation pressure to the balloon catheter; sensing any applied fluid pressure using a piezoresistive semiconductor transducer placed in 5 fluid communication with the applied pressure, and generating at said transducer an electrical signal proportional in magnitude and duration to said applied pressure; converting said electrical signal to a series of Q corresponding digital signals and inputting said digital signals to a digital processor; processing the digital signals using said digital processor to carry out a programmed method comprising the steps of: 5 deriving data from said digital signals which represents a numerical value of the magnitude of said applied pressure; deriving data from said digital signals which represent a numerical value of the duration of said positive inflation pressure; electronically storing all said derived data; and displaying said numerical values in a visually perceptible manner to a system user; deflating the balloon catheter by withdrawing the syringe plunger so as to remove the positive fluid pressure applied to the balloon catheter; and repeating each of the aboverecited steps for a second inflation of the balloon catheter.
26. A method as defined in claim 23 wherein said digital processor is housed within a controller which comprises a control panel having a digital readout, and wherein prior to said inflating step said digital processor performs the step of presenting a visual display at said digital readout of one or more of the following optionally selectable functions: a. retrieving and reviewing all previously stored digital data; b. clearing all digital data previously stored in said data memory means; c. setting a maximum positive inflation pressure value; d. setting a maximum inflation time value; e. initializing date and time; f. selecting units of inflation pressure; HEET g. printing data stored in said data memory means.
27. A method as defined in claim 23 wherein prior to said inflating step said digital processor performs the steps of: electronically sensing whether said transducer is electrically connected to said digital processor; and when sensing that said transducer is not so connected, said digital processor outputting to a system user a signal to that effect.
28. A method as defined in claim 23 wherein prior to said inflating step said digital processor performs the steps of: presenting an optionally selectable input for determining a maximum positive inflation pressure; and electronically storing digital data corresponding to said maximum positive inflation pressure in response to a userdetermined input.
29. A method as defined in claim 26 wherein said method carried out by said digital processor further comprises the step of presenting to a system user an indication of when said selected maximum positive inflation pressure is applied to said balloon catheter.
30. A method as defined in claims 23 or 26 wherein prior to said inflating step said digital processor performs the steps of: presenting an optionally selectable input for a maximum duration during which positive inflation pressure is to be applied to said balloon catheter; and electronically storing digital data corresponding to said selected maximum duration in response to a userdetermined input.
31. A method as defined in claim 28 wherein said method carried out by said digital processor further comprises the step of presenting to a system user an indication of when said selected duration is reached. TESHEET.
Description:
SYSTEM AND METHOD FOR MONITORING, DISPLAYING AND RECORDING BALLOON CATHETER INFLATION DATA

A portion of the disclosure of this patent document contains material to which a claim of copyright protection is made. The copyright owner has no objection to the reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but reserves all other rights with respect to the copyrighted work.

BACKGROUND OF THE INVENTION

Field of the Invention

This invention relates to syringe systems that are used for controlling the inflation of a balloon-tipped catheter, and more particularly to a system and method which utilize an electronically monitored syringe system to assist in the control of balloon catheter inflation pressures and to automatically record balloon catheter inflation data.

The Present State of the Art

Balloon-tipped catheter systems have been known and used in the medical arts for a number of years in connection with a variety of different kinds of procedures- which are used, for example, in various fields of medicine, such as urology, gynecology, cardiology and others. Particularly in connection with the treatment of coronary artery disease, the use of balloon-tipped catheters and their associated syringe systems have become widely used.

Coronary artery disease is the narrowing of the arteries that feed oxygen-rich blood to the heart. Since the heart is a muscle whose primary job is to pump oxygenated blood throughout the body, the heart needs adequate amounts of oxygen to properly function. Thus, when the coronary arteries which are located on the top of the heart and through which oxygenated blood is returned to

the heart become narrowed or blocked (a condition known as "stenosis") , angina can result. Angina is a symptom of coronary artery disease characterized by chest pain or pressure that can radiate to the arm or jaw, and is caused by a lack of oxygen-rich blood to the heart muscle. Coronary artery disease with its accompanying symptom of angina results from atherosclerosis, which is a build up of waxy material called plague inside the arteries. When this happens, under exertion or stress, the heart demands more oxygen but the narrowed coronary arteries cannot supply enough oxygen-rich blood to meet the demand, resulting in angina.

Up until about ten years ago, there were two basic ways to treat coronary artery blockages: with medicine or by performing coronary artery by-pass surgery. Various kinds of medication could be administered which would decrease the work of the heart by slowing the heart rate, dilating the blood vessels, or lowering blood pressure. However, such medicinal treatment did not cure coronary artery blockage, which thus remained and which would therefore continue to present a risk that at some point the blockage would become serious enough to require surgical intervention.

In coronary artery by-pass surgery, a blood vessel from the chest or leg is grafted beyond the point of blockage so that the blood detours past the blockage in order to reach the heart. In some severe cases, multiple by-passes are performed. As is well known, coronary artery by-pass surgery is expensive, is a high risk procedure and often requires prolonged hospitalization and recovery periods.

About ten years ago, another method for treating coronary artery disease was developed, called balloon coronary angioplasty, or more technically, percutaneous

transluminal coronary angioplasty (PTCA) . PTCA is a much less traumatic procedure than coronary artery by-pass surgery. PTCA takes about two hours and can be done under local anesthesia, with the result that often a patient can be back on his feet and active in a matter of days. Because PTCA is much less expensive and less traumatic than by-pass surgery and yet in many cases still effectively removes blockage, PTCA has experienced a dramatic increase in the number of such procedures performed each year. For example, according to some reports, as recently as 1987 some 200,000 patients suffering from coronary artery disease were treated by PTCA. Since coronary artery disease remains the number one cause of death, with (as of 1987) some six million reported cases in the U.S. alone, PTCA may be expected to continue to play an important role in the treatment of coronary artery disease.

In performing PTCA, an introducer sheath is inserted through an incision made in the groin or in the artery of an arm. An x-ray sensitive dye is injected into the coronary artery through a catheter that is introduced through the sheath. The dye enables the doctor, through the use of real time x-ray techniques, to clearly view the arteries on a television monitor and to thereby locate the artery blockage. A balloon-tipped catheter with a guide wire at the end of it is then advanced through the artery to the point of the blockage with the help of the x-ray monitor.

As schematically illustrated in Figures 1A-1C, the balloon catheter 10 is advanced to the middle of the blockage 12. The catheter 10, which is filled with a fluid and is coupled at its other end to a control syringe, is manipulated by the cardiologist. Once the balloon catheter is in place, utilizing the control syringe the balloon is inflated for 20 to 60 seconds as shown in Figure 2B. The

balloon is then deflated and this procedure is repeated typically several times to compress the plaque on the . arterial wall, as shown in Figure 1C. After the results are checked, the balloon catheter and guide wire are then removed.

As will be appreciated, notwithstanding that PTCA is a much less traumatic procedure than coronary artery by¬ pass surgery, nonetheless exacting control with respect to inflation pressure and duration of the inflation periods is essential to the safety of the patient. For example, when the balloon catheter is completely inflated so as to begin compressing the plaque, blood flow to the heart is thereby temporarily shut off. This creates the potential for initiating cardiac arrest. Accordingly, the pressure exerted on the artery by the balloon catheter as well as the duration of the blockage created by inflating the balloon catheter must both be carefully controlled by the attending cardiologist and other personnel. The inflation pressures and duration of each inflation must be based on the cardiologist's assessment of the health of the patient and the patient's ability to withstand such a temporary stoppage of blood flow to the heart.

In the past, PTCA syringe systems have utilized syringe systems which are equipped with standard pressure gauges that are utilized to sense and read the pressure used for purposes of inflating a balloon catheter. Human observation of stop clocks and the like has been used to control the duration of the inflation.

While these prior art techniques have been widely used with success, there is still a serious risk of human error when using such systems. The gauges used on such syringe systems are often awkward and difficult to accurately read, and are also subject to malfunction. Thus, improper recording of inflation pressure and/or duration may occur.

Accordingly, there is a need for the cardiologist and/or clinician to be able to improve the degree of control and precision with respect to the inflation procedure. There is also a need to be able to accurately record the procedure data so that in the event of any later question with respect to whether the procedure was properly carried out, there is an accurate record from which to answer such questions. The system and method of the present invention provide an effective solution to these problems which have not heretofore been fully appreciated or solved.

SUMMARY OF THE INVENTION The system and method of the present invention have been developed in response to the present state of the art, and in particular, in response to the problems and needs in the art not heretofore fully or. completely solved by syringe inflation systems used in connection with PTCA procedures. However, it is not intended that the system and method of the present invention will necessarily be limited solely to PTCA procedures, since they will also find useful application with potentially many kinds of procedures which require the utilization of inflatable balloon members for various kinds of medical procedures. Thus, it is an overall object of the present invention to provide a system and method which provide for more accurate measurement, monitoring and recording of the pressures used for inflation of a balloon-type member as well as the duration of inflation in connection with any such inflation of a balloon-type member, catheter or otherwise. Another important object of the present invention is to provide a system and method whereby state of the art electronic technology can be utilized to assist the cardiologist or clinician in accurately measuring, monitoring and recording inflation pressures which he or

she desires to achieve when utilizing a syringe system to inflate a balloon catheter or other balloon-type member, and which will at the same time automatically electroni¬ cally record and store the inflation pressure and duration of the inflation so as to permit the data pertaining to the procedure to be later printed out and thus accurately documented and saved for later reference.

Another important object of the present invention is to provide an improved syringe system and electronic 0 monitoring and recording system which increase the convenience and safe utilization of a balloon catheter or other balloon-type inflation member.

These and other objects and features of the present invention will become more fully apparent from the 5 following more detailed description taken in conjunction with the drawings and claims, or may be learned by the practice of the invention.

Briefly summarized, the foregoing and other objects are achieved in an electronically monitored syringe system 0 that is connected to a balloon catheter or other inflatable balloon-type device through tubing. The syringe comprises a barrel and a plunger selectively operable to increase fluid pressure applied to the balloon catheter through the connecting tubing by sliding the plunger further into the barrel, and to then remove the applied pressure by returning the plunger to the rear of the barrel. A transducer means for sensing fluid pressure applied by the syringe is placed in fluid communication with the syringe and the connecting tubing. The transducer means thereby ° senses applied fluid pressure and outputs an electrical signal proportional to the sensed pressure. The electrical signal output by the transducer means is then electronically processed so as to derive and record therefrom electronic data representing the magnitude of 5

fluid pressure applied to the balloon catheter or other balloon-type member, and so as also to derive the length of time that inflation pressure is applied to the balloon catheter or other balloon-type member, and the electronic data representing these parameters is then automatically displayed and/or recorded. The system also comprises a display means for selectively outputting a visual display of the magnitude of the applied pressure and the corresponding length of time that inflation pressure is applied to the balloon catheter or other balloon-type member with respect to each inflation thereof.

The electronic control system used in conjunction with the system and method of the present invention may also be optionally designed to permit the selection and input of various control parameters such as a maximum positive inflation pressure that is to be applied, a maximum duration for applying positive inflation pressure, initializing the date and time of the procedure and/or retrieving and displaying inflation data previously recorded for any prior inflation of the balloon catheter or other balloon-type member. In this manner, the system and method of the present invention provide not only more convenient operation of the syringe when inflating the balloon catheter or other balloon-type member, but also a much safer and more accurate procedure which can be used to effectively alert a cardiologist or clinician when the appropriate levels of pressure and duration thereof have been reached with respect to a particular inflation event. The system is thus efficient and easy to operate while at the same time providing improved convenience and overall safety, and also providing accurate documentation of all inflation data for later reference.

BRIEF DESCRIPTION OF THE DRAWINGS The presently preferred embodiments and the presently understood best mode of the invention will be described with additional detail through use of the accompanying drawings, wherein corresponding parts are designated by the same reference numerals throughout, and in which:

Figures 1A-1C are partial cross-sectional views which schematically illustrate a conventional balloon catheter being placed within a vessel such as a coronary artery containing a blockage, and showing the manner in which the blockage is essentially removed by inflation of the balloon catheter.

Figure 2 is a perspective illustration showing the system of the present invention, and in particular illustrating a syringe with tubing for connection to a balloon catheter, and a transducer means mounted on the syringe and electrically connected to an electronic controller.

Figure 3 is a partial cross-sectional view of the syringe barrel that more particularly illustrates one presently preferred structure and method for placing the transducer means in fluid communication with the interior of the syringe and the tubing which is connected to the balloon catheter. Figure 4 is a functional block diagram which schematically illustrates the primary components of one presently preferred electronic circuit used in connection with the electronic controller.

Figures 5A and 5B taken together constitute a detailed electrical schematic diagram which illustrate, as an example, the presently preferred embodiment and presently understood best mode for implementing the electronic circuit means of the system and method of the present invention.

Figures 6A through 6D taken together illustrate a flow chart showing one presently preferred method for programming the digital processor of the electronic circuit means in accordance with the method of the present invention.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENT The following detailed description is divided into two parts. In part one the overall system is described, including a description of the syringe system, the transducer means and electronic controller by reference to Figures 1 through 5. In part two the method by which the system of the present invention is used to electronically monitor, display and automatically record inflation data is described, including a detailed description of one presently preferred method for programming the digital processor used in the electronic controller by reference to Figures 6A-6D.

I. THE SYSTEM A. General Environment and Intended Utility of the System As noted above, the system and method of the present invention have been developed in response to specific needs which have been found to exist in connection with techniques that are currently in use according to the present state of the art which has developed in connection with PTCA procedures. As described in connection with Figures 1A-1C, PTCA is a surgical procedure used for treating coronary artery disease wherein a balloon catheter 10 is inserted through an incision made in the groin or in the artery of an arm and is then advanced through the artery by means of a guide catheter and assisted by means of an x-ray sensitive dye. The balloon catheter 10 is advanced until it is located at the middle of the blockage

12. Once located at the middle of the blockage 12, the balloon catheter 10 is then inflated (see Figure IB) to a pressure that is typically between 7 and 10 atmospheres for a duration of between 20 to 60 seconds* The balloon catheter 10 is then deflated and the procedure is repeated a number of times, slightly increasing the inflation pressure each time so as to further compress and thereby reduce the blockage 12 created by the buildup of plaque along the wall of the artery. Once this series of inflations is completed and the artery is cleared, as shown in Figure 1C, the balloon catheter 10 is removed.

While the system and method of the present invention are particularly useful in connection with the aforementioned PTCA procedure, the system and method of the invention are not intended to be necessarily limited to use in connection with PTCA. Rather, it is contemplated that the system and method of the invention will find useful application with respect to any procedure requiring the use of an inflatable balloon-type member. Moreover, while in PTCA the inflation pressure which is applied to the balloon catheter 10 is applied hydraulically by means of the syringe and connecting tubing which are all filled with a sterile liquid such as a solution of saline and contrast medium, in some potential applications it may be necessary or desirable to apply the inflation pressure pneumatically. Accordingly, as used herein the term "fluid pressure" is intended to apply either to a hydraulically or a pneumatically applied inflation pressure.

B. The Presently Preferred Syringe System and Electronic

Controller: Figures 2-5.

The system of the present invention is comprised of a syringe that is connected to a balloon catheter or other balloon-type member through tubing. The syringe is used to

apply fluid pressure to the balloon catheter or other balloon-type member through the tubing so as to inflate the balloon catheter or balloon member when desired, and can also be used to deflate the balloon catheter or balloon member after it has been inflated for a selected duration. The systeA is also comprised of a transducer means for sensing applied fluid pressure and for outputting an electrical signal proportional to the sensed fluid pressure. The transducer means is thus preferably in fluid communication with the syringe and the tubing connected to the balloon catheter or other balloon-type member. The system also comprises an electronic circuit means connected to the transducer means for receiving the electrical signal that is output by the transducer means and for processing the electrical signal so as to derive and record therefrom electronic data representing inflation pressure applied to the balloon catheter or balloon member as well as the length of time the inflation pressure is applied to the balloon catheter or balloon member each time it is inflated. The system is also comprised of display means which is electrically connected to the electronic circuit means for selectively outputting a visual display of the inflation pressure and the corresponding length of time the inflation pressure is applied to the balloon catheter or balloon member during each inflation.

In the preferred embodiment illustrated in Figure 2, the overall system is generally designated at 14 and the syringe is generally designated at 16. With reference to Figures 2 and 3 taken together, the syringe 16 is comprised of a barrel 22 typically molded from transparent plastic material to permit inspection of the contents thereof. A syringe plunger 24 (Figure 2) is slidably mounted within the barrel and is secured within the barrel 22 of means of a cap 34 which can be threadingly or otherwise securely

attached at the end of the barrel 22. The syringe plunger 24 has a threaded portion 30 which mates with corresponding threads 32 (see Figure 3) of end cap 34.

The proximal end of plunger 24 is provided with a soft rubber bulb 25 which engages the interior of barrel 22 in a fluid-tight fit such that by sliding the syringe plunger 24 further into the barrel 22, positive pressure exerted on the fluid contained within syringe 16 and connecting tubing 38 will be applied to the balloon catheter which is connected to the tubing 38 by means of a rotatable luer connector 39. Similarly, by withdrawing the syringe plunger 24 toward the rear of the barrel 22, the positive pressure exerted on the balloon catheter will be released. Rapid movement of the syringe plunger 24 is accom¬ modated by means of a trigger mechanism comprising a spring-activated trigger 28 which can be retracted into handle 29 so as to disengage the threads 30 from the corresponding threads 32 of cap 34. This permits the plunger 24 to freely slide in either direction within the syringe barrel 22. By releasing the compression on trigger 28 relative to handle 29, the threads 30 are then permitted to engage the corresponding threads 32 of cap 34 so that thereafter the syringe plunger 24 can only be advanced or retracted by screwing the plunger 24 either clockwise or counter clockwise, respectively. Thus, rapid application or release of pressure applied to the balloon catheter can be accomplished by compressing the trigger 28 against handle 29 followed by movement of the syringe plunger 24 to the position desired for the approximate pressure to be applied. This can then be followed by release of the trigger 28 and screwing the plunger 24, which will permit a slow, gradual adjustment of the syringe plunger 24 to the exact pressure that is desired.

It will be appreciated that insofar as providing for application and release of positive inflation pressure, this function of syringe 16 of the system could be provided by any of a number of syringe systems which are convention¬ al or known in the art. However, the syringe illustrated and generally described in connection with Figures 2 and 3 is presently preferred in connection with the system and illustrates the presently contemplated best mode of the syringe 16. A more complete description of syringe 16 and its unique design and advantages is contained in copending U.S. Application Serial Number 325,561 filed March 17, 1989, which is incorporated herein by reference.

The transducer means of the system of the present invention is generally designated in Figures 2 and 3 at reference numeral 18. As shown best in Figure 3, the body of syringe barrel 22 has a small rectangular housing 40 formed at the leading end of the barrel as an integral part of the syringe barrel 22. The housing 40 communicates through a small circular opening 50 formed in the sidewall of syringe barrel 22 with the interior of syringe barrel 22 for the purpose of providing fluid communication from the interior of barrel 22 and connecting tubing 38 to the transducer means, as hereinafter more fully described.

As used herein, the term "fluid communication" is intended to mean the pneumatic or hydraulic transmission (direct or indirect) of fluid pressures exerted within the syringe.barrel 22 and connecting tubing 38 to the transdu¬ cer means so that such fluid pressures can be sensed by the transducer means. Direct transmission of such fluid pressures would occur, for example, when a diaphragm of a piezoresistive semiconductor transducer is placed into contact (either pneumatically or hydraulically, or a combination of both) with a fluid contained in a closed system, as would be the case in the preferred embodiment

illustrated and described herein. Indirect transmission could be said to occur, for example, where the transducer means is coupled to a diaphragm that in turn contacts the fluid contained in a closed system.

In Figure 3, the transducer is shown as preferably comprising a piezoresistive semiconductor integrated circuit 42 which provides a Wheatstone bridge, as shown in the detailed electrical schematic at Figure 5B at the corresponding reference numeral. Transducer 42 is in turn attached to a small ceramic substrate 44 which contains additional circuitry for providing temperature compensation and calibration of the transducer 42, and to which is connected the electrical cable 46. The end of electrical cable 46, ceramic substrate 44 and piezoresistive semiconductor transducer 42 are assembled as illustrated in Figure 3 and placed within housing 40, and then secured by a suitable potting compound and permanently enclosed by means of the cap 48 placed on top of the housing 40. In this manner, the entire transducer assembly is formed as an integral attachment to the syringe barrel 22. The small circular opening 50 may be filled, for example, with a silicone gel which will permit transmission of the fluid pressures exerted by means of syringe 16 through the circular opening 50 so that such pressures can be sensed by transducer 42, while at the same time isolating the integrated circuit 42 and substrate ' 44 from coming into contact with fluid contained in the syringe barrel 22.

Stops 26 (see Figure 1) are formed on the syringe plunger 24 so as to prevent the bulb 25 of syringe plunger 24 from being inserted to the point where it would otherwise close off the circular opening 50.

While in the preferred embodiment the transducer means has been illustrated and described as a piezoresistive semiconductor, which is integrally mounted to the syringe

barrel 22, it should be appreciated that the preferred embodiment is illustrative only and is not to be construed as limiting the scope of the invention. For example, the semiconductor transducer could be located at the end of connecting tubing attached through a T-connector to tubing 38 and could therefore be located at a position remote from the syringe 16, as for example on an I.V. stand or mounted as part of the electronic circuitry contained inside of controller 20. Furthermore, the transducer means could also comprise transducer types other than the piezoresistive semiconductor type illustrated and described in the preferred embodiment, as for example conventional strain gauge transducers which have been known and used in the art for many kinds of different pressure monitoring applications, or fiberoptic transducers.

With further reference to Figure 2, the electrical cable generally designated at 54 is comprised of two lengths as shown at 46 and 58. The first length 46 of cable 54 is permanently attached at one end to transducer 18 in the manner described above in connection with Figure 3. The other end of length 46 terminates in a conventional connector 60 which attaches to the second length 58 of cable 54. The second length 58 of cable 54 in turn attaches by a conventional connector 62 to the electronic circuitry contained in controller 20. Advantageously, by providing a point at connector 60 which is intermediate the transducer 18 and controller 20, transducer 18 and syringe 16 can be disconnected from the controller 20 so that the syringe 16 can be conveniently moved to a different location for testing or the like while still maintaining the sterility of syringe 16 and transducer 18. Thus, while the controller 20 may not necessarily be sterile, sterility of the first length of cable 46 and the transducer 18 and syringe 16 can be maintained at all times.

With continued reference to Figure 2, the electronic circuit means and display means of the system of the present invention are illustrated in the preferred embodiment as comprising part of controller 20. The specific electronic circuitry which is used for purposes of processing the electrical signals output by transducer 18 through cable 54 is contained inside of controller 20 and is more particularly illustrated in Figures 4 and 5A-5B, as hereinafter more fully described. The display means of the system is shown in the illustrated embodiment as comprising, in addition to corresponding parts of the electronic circuitry, a digital readout as generally designated at 66 which is part of the control panel 64.

Specifically, control panel 64 comprises a menu switch 74 which, when activated, will cause a series of optionally selectable functions to be displayed at the digital readout 66. Select switch 76 of control panel 64 can then be used to input various control parameters as well as causing the controller 20 to retrieve and display previously recorded data, as hereinafter more fully described. Controller 20 is also equipped with a conventional connector 78 for a printer cable 80 so that data which is recorded by controller 20 can also be selectively printed out for permanent documentation and later reference. The digital readout 66 of control panel 64 is shown in the illustrated embodiment as comprising a conventional LED or LCD alphanumeric display having twelve or any other suitable number of controllable display positions for outputting numbers or letters. The display 66 is preferably also divided into a display portion 68 ("NUMBER") which displays and records the number of each discrete inflation of the balloon catheter. A second display portion as illustrated at 70 ("TIME") is used for purposes of checking and/or inputting the current date and

time, as well as inputting control data with respect to a maximum duration for applied positive pressure, as desired, and is also used for purposes of displaying the duration of the inflation and signalling a system user if a selected time of duration has been reached. Display portion 72 ("PRESSURE") is similarly used for purposes of inputting selected control data with respect to a maximum positive inflation pressure desired in connection with any inflation, and also selection of the pressure units (e.g., either atmospheres or pounds per square inch) , and is also used to display the current inflation pressure and to signal the user if a selected maximum inflation pressure has been reached.

Controller 20 can be conveniently located on a stand 82 at a point which is easily visible by the cardiologist or clinician using the system and can be switched on or off using a conventional switch located on the controller 20. The controller 20 is also plugged into a conventional AC wall outlet from which the power is derived for purposes of running the controller 20, and is also provided with a battery-backed memory which provides an internal clock and timer, and which retains data after the controller 20 is switched off.

With reference next to Figure 4, the electronic circuit means of the system is more particularly illustrated. In the presently preferred embodiment, the electronic circuit means comprises, by way of example, means for amplifying the electrical signal output by the transducer means; means for converting the amplified signal from an analog to a digital form; digital processor means for processing the digital form of the signal so as to derive therefrom digital data from which the magnitude of the applied pressure, the length of time that pressure is applied to the balloon catheter and whether the applied

pressure corresponds to a first or a subsequent inflation of the balloon catheter may be output in a numerical form; data memory means for storing the digital data derived by the digital processor; and program memory means for storing machine-readable instructions utilized by the digital processor means to derive, store, retrieve and display digital data and to optionally display a series of functions for selection at the display means of various control parameters.

With particular reference to the presently preferred embodiment of the electronic circuit means as generally designated at 84 in Figure 4, the transducer 42 is electrically connected by means of cable 54 to an analog circuit 86 which provides amplification and signal conditioning. As more particularly illustrated in Figure 5B by the portion of the circuit enclosed by the dashed box 86, the amplifier and signal conditioning circuit 86 is shown in the preferred embodiment as a 100 millivolt full scale differential amplifier with an adjustable differential gain of forty to one, which is provided by amplifiers U10B, U10D, and UIOC.

From circuit 86 the amplified signal is then input as schematically represented at line 112 in Figure 4 and as illustrated at terminal H in Figure 5B to a conventional analog to digital (A/D) converter circuit 88. The A/D converter 88 serves as a means for converting the amplified signal from an analog to a digital form by outputting a series of corresponding digital signals which identify the analog signal sensed and input by the transducer 42. As shown in reference to Figure 5A, in the presently preferred embodiment the A/D converter 88 is comprised of an integrated circuit U8. The particular integrated circuit U8 used in the implementation of the electronic circuit means, as well as the identification of each of the parts

used in the detailed electrical schematic of Figures 5A and 5B, is set forth in Table I at the end of the detailed description. It should be appreciated that the particular circuit components and circuit design which is illustrated in Figures 5A and 5B are intended merely as an example of the presently preferred embodiment and the presently understood best mode of implementing the overall functions which are represented by the block diagram of Figure 4. Figures 5A and 5B illustrate in detail the electrical schematic diagram showing the pin numbers and interconnections for each of the integrated circuit components and the other circuit elements used in the implementation of the preferred embodiment. Of course other circuit designs can be devised that would also work satisfactorily using either software driven digital processing circuitry or hardware based circuit design.

With continued reference to Figures 4 and 5A-5B, the digitized signal is output by A/D converter 88 as schematically represented by line 98 and as illustrated in greater detail in Figure 5A to a digital processor means 90. Digital processor means 90 is illustrated in Figure 5A as integrated circuit UI. The digital processor is controlled by machine-readable instructions stored in program memory 94 which are communicated as schematically illustrated in Figure 4 by means of a data bus 104 running between digital processor 90 and program memory 94. The particular program instructions carried out by the digital processor Ul are more particularly illustrated and described in reference to the flow chart of Figures 6A-6D, as hereinafter more fully described in part two, and are addressed by processor Ul through latch circuit 92 and an address bus schematically represented at line 108 (Fig. 4) . Briefly summarized, the instructions stored in program memory 94 are utilized by digital processor means 90 to

derive from the digitized data the fluid pressures applied by the syringe 16 to the balloon catheter and to display the sensed pressures at the digital PRESSURE readout 72 of control panel 64 (see Figure 2) . The applied fluid pressures are also automatically recorded by digital processor means 90 and stored in the data memory 96. The output of the digital data to the display 72 is transmitted by way of bus 106 schematically shown in Figure 4 and the corresponding electronic circuitry 97 (Figs. 4 and 5A) which is used to drive the display 72. The processor means 90 can also be programmed to display the positive inflation pressure which is output at the LED display 72 in units of either atmospheres or pounds per square inch as selected by the system user by means of using the menu and select switches 74 and 76, as hereinafter more fully explained.

Processor means 90 can also be utilized according to the programmed instructions contained in memory 94 to monitor and thus assist in the control of the maximum positive inflation pressure to be applied to the balloon catheter by inputting at the PRESSURE readout 72 a maximum positive pressure using the menu and select switches. This control parameter is input from the corresponding display circuitry 97 on bus 106 and bus 104 to the data memory 96. Thereafter, once the maximum positive inflation pressure is reached, the digital processor will cause the PRESSURE display 72 to flash thereby signalling the system user that the maximum positive inflation pressure has been reached. This advantageously assists the system user in more carefully controlling and identifying the procedure used with respect to each inflation event.

In a similar manner, a selected duration for which positive inflation pressure is to be applied to the balloon catheter can also be input at TIME display 70 using the menu and select switches. The corresponding display

circuitry 95 thus inputs the selected duration time through data buses 106 and 104 to data memory 96. Accordingly, the programmed instructions contained in memory 94 will thereafter cause the processor means 90 to begin counting the duration once positive inflation pressure begins to be applied. The count will be output by processor 90 at the TIME display readout 70 which will flash once the selected duration has been reached, thereby signalling the system user that positive inflation pressure has been applied for the desired length of time. Again, this significantly enhances the ability of the overall system to carefully assist in controlling the inflation procedures according to the selected parameters.

Data memory 96 is battery-backed so as to retain all data stored therein even when controller 20 is switched off, and so as to provide an internal timer for the date and time data and for clocking any selected maximum duration times input as described above.

Each of the control parameters which are input at the TIME and PRESSURE displays are input and stored as noted above in the data memory 96. In this manner, the appropriate control parameters are utilized by the program stored in memory 94 and are also automatically recorded in the data memory 96 for later reference. In a similar manner, once a positive inflation pressure is applied the processor means 90 will automatically time the duration of the positive pressures and this information will likewise be recorded and stored in the data memory 96 for later reference, along,with a numerical identification input from the NUMBER display 68 which identifies whether the particular inflation event is the first time the balloon catheter has been inflated or whether the inflation is a subsequent inflation. In this manner, each time the balloon catheter is inflated it is discretely identified

and the maximum inflation pressure and time duration data corresponding to that inflation event are not only displayed but are also automatically recorded and stored in the data memory 96.

A latch circuit 92 is used to control the gating of address data from digital processor 90 to the respective memories 94 and 96 and display circuits 93, 95 and 97 as is conventional in the art. In the detailed schematic of Figure 5A, the latch circuit 92 is illustrated at integrated circuit U2, while the program memory and data memory circuits 94 and 96 are shown as the integrated circuits U3 and U4, the particular specifications of which are identified in Table I. Integrated circuits for the number, time and pressure display circuits 93, 95 and 97 are also shown in Figure 5A at integrated circuits U5, U6 and U7 with their corresponding identifications in Table I.

In addition to the digital readout 66 the system of the present invention also provides for output of the recorded data from processor means 90 through serial data lines 100, 102 to a serial data receiver and driver circuit 114, which in turn is connected as schematically illustrated at lines 116 to a printer port 78 to which printer cable 80 is connected. The serial data receivers and drivers are shown as a conventional integrated circuit identified at U9 in Figure 5B, and which is an RS232 driver and serial transmitter.

The supply voltage used for driving the integrated circuits and other active circuit elements shown in the detailed schematic diagram of Figures 5A and 5B is supplied by means of a transformer 120 which is connected at its output to a full wave bridge rectifier 118. The output of rectifier 118 is regulated by integrated circuit Ull which is a voltage regulator. The capacitors C5-C13 serve as noise suppression filters for each of the integrated

circuits Ul through U9. With further reference to Figure 5B, the switch 124 represents the switch on the back of the controller 20 which is used to turn the controller on and off and which connects the controller through a conventional cord and socket plug 122 to an AC outlet.

II. The Method Attention is next turned to a detailed description of the presently preferred method by which the system of the present invention is used to monitor, display and automatically record inflation data, with particular reference to Figures 6A-6D which illustrate one presently preferred embodiment of the instructions which may be utilized to control the processor means 90. As will be appreciated by those of ordinary skill in the art, and as noted above, while the system and method as described in reference to the preferred embodiments herein illustrate the system and method as implemented using state of the art digital processing design and corresponding program instructions for controlling the processor, the system and method could also be implemented and carried out using a hardware design which accomplishes the necessary electronic processing, which is thus intended to be embraced within the scope of various of the claims as set forth hereinafter.

With reference to Figure 6A, when the controller 20 is turned on the program starts as indicated at step 126 and then immediately moves to step 128 which causes the system to initialize. . At this step, the appropriate program instructions are loaded into the digital processor. The system then moves to step 130 where it checks to determine whether the transducer 42 has been electrically connected by means of the cable 54 to the electronic circuitry housed in controller 20. If the transducer is connected the

system then moves as indicated at flag 132 to the portion of the programmed instructions illustrated in Figure 6C. If the transducer 42 has not yet been electrically connected to controller 20, the system causes a message to be output on the digital readout 66 signifying that the transducer is disconnected (e.g. "NO SYRINGE") and instructing the system user to press the menu switch 74, as shown at step 134. The system then moves to step 136 to check whether the menu switch 74 has been activated and if not returns to step 130 as schematically illustrated at 138 and continues in that loop until the menu switch 74 is activated.

Once the menu switch 74 is activated at step 136, the system then moves to step 140 and causes the readout 66 to display a message inquiring whether the data previously recorded by the system is to be scrolled (e.g., inflation pressure and duration corresponding to each inflation number is retrieved and displayed in sequence) at the digital readout 66. If the system user desires to review the previously recorded data, the select switch 76 is activated and the system then implements step 144 which causes all of the previously recorded inflation data for each inflation event to be retrieved in sequence and displayed. If at step 140 the system user does not wish to scroll the previously recorded inflation data, the menu switch 74 is again activated which causes the system to skip step 144 as schematically illustrated at line 142 so as to proceed with the next inquiry as represented at step 146.

At step 146 the system causes a message to be displayed on the digital readout 66 inquiring whether previously recorded inflation data which has been stored in the data memory 96 is to be cleared. If select switch 76 is activated this causes the processor to clear the

previously recorded inflation data from data memory 96, as indicated at step 150. If the previously recorded inflation data is not to be cleared from data memory 96, the menu switch 74 is activated which causes the system to skip step 150 as illustrated at line 148 and to move to the next inquiry as represented at step 152.

At step 152 the system causes the digital readout 66 to display an inquiry with respect to whether an upper limit is to be set with respect to the maximum positive inflation pressure to be applied with respect to the next inflation event. If so, the select switch 76 is activated and is used to input the selected maximum positive inflation pressure through the data transfer buses 106 and 104 (see Figure 4) , to the data memory 96 for later reference. If a maximum inflation pressure is not selected at step 52, the menu switch is activated which causes the system to skip step 156 and move to the next inquiry as represented at step 158.

At step 158 the system displays a message at the digital readout 66 inquiring whether the maximum duration for application of positive pressure is to be selected. If so, the select switch is again activated which causes the system to move to step 162 and the select switch 76 is then used to input at the time display 70 the selected duration. This selected duration is input by means of the corresponding time display circuitry 95 (see Figure 4) through the data transfer buses 106 and 104 to the data memory 96 for later reference.

In a manner similar to that described above in connection with the preceding inquiry steps, the system continues to inquire whether the current time and date are to be displayed, as represented at steps 164 and 170, respectively, and if so, by utilizing the select switch 76 as described above, current date and time may be entered at

the time display 70. However, the internal clock that is part of the integrated circuit U4 will typically make it unnecessary to enter these parameters. The system then moves through the series of steps represented at 176, 180, 182, and 184 where it determines the pressure units to be displayed at the pressure display 72 as well as determining whether data is to be printed. After the print inquiry has been responded to by utilization of the appropriate menu or select switch 74 or 76, respectively, the system returns as illustrated at line 138 to step 130.

As will be appreciated from the foregoing, the portion of the program instructions which are carried out according to the flow chart of Figures 6A and 6B pertains to that part of the program which permits a series of optionally selectable functions to be sequentially displayed for purposes of inputting various control parameters which are later utilized in displaying and automatically recording the data, as well as utilizing these control parameters to alert the system user when selected limits are reached with respect to-maximum positive inflation pressure and duration of positive inflation pressures.

Once the transducer 42 has been connected to controller 20 the system moves to that portion of the program illustrated in Figures 6C and 6D where it then starts as schematically indicated at step 186 by moving to step 188 so that the electronic circuitry is permitted to stabilize. At this step the processor delays all operation of the electronic circuitry for a selected period of time to permit the circuit components to reach a steady state so that transient conditions will not introduce any errors into the data. The system then moves to step 190 where it determines the zero pressure of the transducer 42. At this step the processor means 90 determines the reading at transducer 42 with no pressure being applied. This zero

pressure reading " is then stored and is subsequently subtracted or offset against all other pressure readings to assure accuracy of the data.

At step 192 the system again undergoes a check to determine whether the transducer 42 is still connected to the controller 20. This is a safety precaution to make sure that at all times during the inflation procedure the transducer 42 is electrically connected to the controller 20 so that the data is being accurately input, displayed and recorded. If the transducer is not connected the system first updates the data memory 96 (step 193) so as to mark the time of disconnection and then a message is output as indicated at step 194 which notifies the system user that the transducer is disconnected and instructing the system user to press the menu switch 74. If the transducer 42 is still connected the system then moves to step 198 and begins to monitor the electrical signal from the transducer, which signal has been digitized and input to the digital processor as previously described in connection with Figures 4 and 5.

The signal from transducer 42 is monitored based on a sample rate that is a matter of design choice based upon the particular circuit design, which for the illustrated embodiment, is ten times per second. If the pressure which i s sensed at transducer 42 is less than one-half atmosphere, the system moves to that portion of the program which commences with step 200. At that step the system first determines whether it is in the first pass through the loop started by step 200 and if so moves to step 202 where the memory is updated. The effect of updating the memory at step 202 is that the time with respect to termination of the last inflation is recorded and stored in the data memory 96. Once that step has been completed, the system then moves to step 204. In the alternative, if at

step 200 the system determines that it is not the first pass through this loop of the program, the system moves directly to step 204 and displays the current data with respect to the inflation number, time, and pressure. The system then moves to step 206 where the processor checks the menu switch 74.

If the menu switch is activated in this condition the system moves to the next step 210 where the last inflation data can be marked as an initial test or riot, as desired by the system user. If the initial inflation is merely a test it is marked at step 212 prior to returning to step 192, otherwise the system moves to step 214 to determine whether any previously recorded inflation data is to be scrolled. If the data is scrolled the system moves to step 216 and retrieves and displays in sequence all previously recorded inflation data for each prior inflation event, otherwise the system jumps to step 218.

Similarly, the system can also proceed through steps 218, 222, and 226 which will permit the transducer to again be zeroed (step 220) , or to set a new maximum positive inflation pressure (step 224) or to change the pressure units (step 228) by entering any of these selections using the select switch 76.

Once the inflation pressure applied to the balloon catheter begins to exceed one-half atmosphere by insertion of the syringe plunger, the system moves from step 198 to the program step 230. At that step the system determines whether this is the first time through the part of the program loop which beings with step 230 and if so updates the memory at step 232. The effect of updating the memory at step 232 is that the processor causes the duration of the previous inflation to be recorded. After update memory step 232 has been performed, or in each subsequent pass through step 230, the system then moves to step 234 where

the system checks to determine whether the inflation pressure has reached any selected maximum positive inflation pressure input for this inflation event. If the selected maximum inflation pressure is reached the system moves to step 238 and causes the pressure display readout 72 on control panel 64 to begin flashing so as to signal the system user that the selected maximum inflation pressure has been reached. If the selected maximum inflation pressure has not been reached or if none was 0 selected, the system then jumps as illustrated at line 236 to step 240.

At step 240 the system checks to determine whether any selected duration has yet been clocked with respect to a selected duration for application of positive pressure and 5 if so then moves to step 244 so as to cause the time display readout 70 to begin flashing, thereby signalling the system user that the selected duration has been achieved. If no duration is input or if the selected duration has not been reached the system moves to step 246 d as indicated at line 242 which causes the system to display the current data with respect to the inflation pressure being applied and the length of time that positive inflation pressure has been applied. The system then returns to the beginning of the loop at step 192.

25 it will be appreciated that the digital processor Ul of Figure 5A, which is an 8032 microprocessor as identified in Table I, could be programmed so as to implement the above-described method using any one of a variety of different programming languages and programming techniques.

30 Attached hereto as Appendix A is one such program which was prepared for use with the 8032 microprocessor and the circuit configuration as illustrated in Figures 5A and 5B. The attached program comprises a listing of source code and assembly language for the 8032 microprocessor.

3.5

The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. Accordingly, the described embodiments are to be considered in all respects only as illustrative and not restrictive, and the scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

TABLE I

Schematic Reference Part

XI 11.059 MHZ

C3 lOMfd

Rl 8.2K

Ul 8032

U2 74HC573

C5,C7, C14 .OlMfd

C1,C2 33pf

PI CONNECTOR DB25F AMP 745389-1

U4 DS1243

U5,U6, -U7 DL3416 SIEMENS

U8 ADC0834 TI

U9 MAX233

Dl IN5291

R4 3OK

U3 27256

Ull UA7805UC FAIRCHILD

C4 4700 Mfd

PCB 1 Printed circuit board

JP3 Female RJ-ll (6 pos-4 wire)

JP1 HEADER 4

Jl AC line cord

R17 MMSI TRANSDUCER

R3 33K

U10 LM324

R5 10 K DIP

R7,R9,R10,R11 10K DIP

K6,R8 10K-15T VRN 752-208-103

R12,R13 100K

R2 10K

C6,C8,C9,C10,C11,C12,C13 .01 Mfd

C15,C16 .2 Mfd

Tl Toltek Custom transformer

D2 GI 2KBP04

Fl .25 AMP

SW1 Micro Switch & Cover

APPENDIX A

/* IFC0DE1.C Intelliflator source code for compiling and linking for the 80C32 small memory,reentrant model. Copyright 1988, 1989 by Merit Medical Systems, Inc. All rights reserved.

♦include <stdio.h> /* required for printf, putchr */

/* #define host_debug */

♦ifdef host_debug. ♦define clear_bit(x) putchar('O') ♦define set_bit(x) putchar('l') ♦define read_bit(x) ((printf(♦x)).(getch()-48)) ^define read_XDATA(x) ((printf("read_X-")),(getch())) ♦define write_XDATA(y,x) printf("%c",x) ♦define output(y.x) printf("port_one_initialized\n") ♦else

♦include <1o51.h> /* required for bit_set, read_X */ ♦endif ♦define SERIAL_RATE OxFD /* OxFD - 9600 bps

OxFA - 4800 bps 0xF4 - 2400 bps 0xE8 - 1200 bps */

♦define TRUE 1

♦define FALSE 0

♦define LF 10 /* ASCII Line feed */

♦define pres '0' /* ch 0 on a/d for pressure */

♦define bat '3' /* ch 3 on a/d for Battery voltage */.

♦define nleg '1' /* ch 1 on a/d for negative transducer leg */

♦define pleg '2' /* ch 2 on a/d for positive transducer leg */

♦define swatch OxlFFF /* swatch scratch address */ ♦define syrjnax OxlFFE /* the maximum syringe number in memory */

♦define nextjnem OxlFFC /* storage location for hi pointer to next available memory address, lo memory «= OxlFFD */

♦define disp_addr_base 0x9FFB /* left display position, RT - 9FF0

Caution: overlaps data RAM at 1FF0-1FFB */

♦define menu_switch read_bit(Pl_6_bit)

♦define set_switch read_bit(Pl_7_bit) ♦define no_syringe 100 /* the a/d of nleg above which is no syringe plugged in */

const char ver[] = " 031189V1.0"; const char header_string[] = "\nMerit Medical INTELLIFLATOR";

SUBSTITUTE SHEET

const char patient_string[]= "Patient Name: \n"; const char trailerπ = "***************************************\n\n\n\n"* const char syrnumstring[] - "Syringe Number "; const char mem_err[] = "Memory Error\n"; const char test_header[] = "#T DATE TIME INF SEC ATM\n"; const char printed[] = "Printed: ";

int p; /* positionof presentmemory pointer */ char dt_string[23]; /* date time and temp string for printout */ char p_s[38]; /* print output string */ char c[5]; /* five ascii characters */ char d[12]; /* the twelve display characters */ C ar raw_d_t[8]; /* raw date and time from/to swatch */ int tempint; /* temporary global integer for debugging */ char pflag; /* syringe inflated flag */ char dt; /* dt-1, date updatingjdt » 0 time updating */

/* structure of memory storage record m[0] char syr_num syringe number, range 1 to 255 m[l] char type type of storage entry :

"I" « inflation

"D" « delay between inflations "N" « syringe change "T" - test inflation "Z" •» syringe re-zeroed "X" » syringe disconnected m[2-18] char dt_string[17] date and time string m[19] char inf_nmbr equal to infjrmbr m[20-21] int inf_sec equal to inf_sec m[22] char pressure equal to (char)pressure in atmospheres or zero for */ char pres iigh; /* highest pressure reached during inflation */ char syr_now; /* the current syringe date to be printed or stored */ float zero_pres; /* syringe reading for zero pressure */ char units ; /* display units 1-ATM, 0=PSI */ float tnax_pres ; /* maximum pressure in tenths of ATM units*/ float pressure; /* syringe pressure */ char etmin; /* ellapsed time minutes */ char etsec; /* ellapsed time seconds */ char infjtmbr; /* inflation number */ int infsec; /* inflation time */ long period_begin;/* the beginning of a period in seconds */ char first; /* indicates pre-inflation period */ char hist_flag; /* indicates historisis on inflation */ extern void dt_read(); extern void menuQ; extern void delay(int d);

extern void int_to_ascii(int n); extern void swatch_attn(); extern void swatch_read(); extern void swatch_write(); extern void ad_to_ascii(char n); extern void get_pressure(); extern void output_char(char c); extern void output_string(char * msg); extern void clear_data(); extern char read_ad(char n);

void stabilization(); 0 void display(); void roll_dot(); void time convertO.; void date_convert(); void test_out(); void digit_set(char n); ι c void start_period();

1ong swatch_to_seconds(); void initializeO; void get_dtstring(); void print_format(int t); void output_syringe_data(char s); void store_memory_string(char typ, char p); 20 void scroll_data(); void print_data();

/* */ void display(chl,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,chl0,chll.chl2) /* write chl-chl2 to dl3416 positions 1-12 */

25 char Chl,ch2,ch3.ch4,ch5,ch6,ch7,ch8,ch9,chl0,chll,chl2; /* characters to be displayed */ {

♦ifdef host_debug printf("\n"); ♦endif ,_ write_XDATA(disp_addr_base-0,chl); write_XDATA(disp_addr_base-l,ch2); write_XDATA(disp_addr_base-2,ch3); write_XDATA(disp_addr_base-3,ch4); write_XDATA(disp_addr_base-4,ch5); write_XDATA(disp_addr_base-5,ch6); write_XDATA(disp_addr_base-6,ch7); 35 write_XDATA(disp_addr_base-7,ch8); write_XDATA(disp_addr_base-8,ch9); wr1te_XDATA(disp_addr_base-9,chlO); write_XDATA(disp_addr_base-10,chll);

EET

1 write_XDATA(disp_addr_base-ll,chl2) ;

♦ifdef host_debug printf ("\n");

♦endif

} 5

/* */ void stabil ization)

{ int i ; displayCS'.'T'.'A'.'B'.'r.'L'.'I'.'Z'.'r.'N'.'G',' '): f (i-0;i<5delay(30000),i++);

}

/* . */

vo.id digit_set(char n) /* blinks,displays and changes time/date */ { - _ char temp;

do { temp « d[n]; d[n] - '; 20 d1splay(d[0].d[l],d[23.d[3] t d[4],d[5].d[6].d[7],' '.'O-.'K','?'); delay(500); if ( set_switch — 0 )

{ tetnp++; switch(n) i 25 case 0: if(dt — 1) { if (temp > 49) temp - 48; } . else

30 { if (temp >50) temp « 48; } break; case 3: 35 if(dt - 1)

{ if (temp > 51) temp - 48;

} else { if (temp >53) temp = 48;

} break; case 6: if(dt —1) { if(temp > 57) temp - 48; } else { if (temp > 53) temp - 48; } break; default: { if( temp >57) temp »48; } 1 do

}while (set_switch — 0); } d[n] - temp; display(d[0].d[l].d[2].d[3],d[4],d[5].d[6],d[7],' '.'0','K'.'?'); delay(500);

} while ( menu_switch «- 1 ); o

{

}while (menu_switch «- 0); delay(lOOO); ;. .,

void roll_dot() /* rotates a dot through the display */ { int n; if (read_XDATA(syr_max) >- 90 jj read_XDATA(next_mem) >0xlAF4) /* 300 entries out of 355 */

{ displayCNVO',' '.'M'.'E'.'M'.'O'.'R'.'Y'.' '.' ',' '); delay(20000);

goto R_D1; 1 while(TRUE) { for(n-0;n<12n++) { displayCNVO',' '.'S'.'YVR'.'r.'N'.'G'.'E'.' ',' ); delay(lOO); if ( read ad(nleg) < no_syringe) goto EXIT; if (menu_switch — 0 ) { R_D1: menuQ; if (read_XDATA(0x00) — 0) goto EXIT4; /* data cleared skip print */ do /* print data */ { displayCP'.'R'.'r.'N'.'T'.' '.'D'.'A'.'T'.'A 1 ,' V?'); delay(lOOO); if (set_switch — 0 ) { syr_now » read_XDATA(syr_max); if(syr_now «- 0)

{ displayCN'.'O',' ', 'D'.'A'.'T'.'A',' '.' '.' '.' '.' '); delay(5000); goto EXIT4;

} do

{

}while(set_switch »»0); do i displayCP'.'R'.'r.'N'.'T',' '.'A'.'L'.'L',' ','?',' '); if(set_switch — 0) { syr_now - 1; do { print_data(); syr_now++;

}while (syrjiow <- read_XDATA(syr_max)); goto EXIT4; } }while (menu_switch »» 1); syrjriow « read_XDATA(syr_max); do { }while(menu_switch «» 0);

-39-

{ ad_to_asc i i ( syrjiow) ; display('S','Y'.'R','r.'N'.'GVE'.':'.c[l],c[2],' '.' '); do {

}while (set_switch -= 0 ); delay(500); if (set_switch «- 0 )

{ syrjiow--; if (syr_now — 0 ) syrjiow « read_XDATA(syr_max);

} }while (menu_switch — 1 ); print_data(); } }while( menu_switch -» 1 ); do { }while(menu_switch «» 0);

} EXIT4: ;

}

} EXIT: ; syr_now - 1 + read_XDATA(syr_max);

write_XDATA(syr_max,syr_now) ; store_memory_string('N',0); zero_pres - 0;

}

/* */ void print_data() i displayCP'.'R'.'r.'N'.'T'.'r.'N'.'G'.' '.' '.' '.' '); output_string(header_string) ; output_string(ver); output_char(LF); get_dtstring(); output_string(printed); output_string(dt_string); output_char(LF); output_string(patient_string); output_syringe_data(syr_now); output_string(trailer);

}

I * */

void store nemory_stπ"ng(char typ, char p)

/* stores a 23 char string with of type typ information for pressure p.

*/

{ int i; int n;

P_s[0] » syrjiow;

P_s[l] - typ; get_dtstring(); for(i«0;i<17p_s[2+i]"=dt_string[i],i++); switch(typ)

{ case T : case 'D' :.

P_s[19] - infjimbr; p_s[20] - (char) (iπf sec/256); p_s[21] = (char)(infsec%256); P_s[22] - p; break; default : for(i » 0;i<4p_s[19+i]=0,i++); } n - ((256) * (read_XDATA(nextjnem))) + (read_XDATA(next_mem+l)); if ( typ - 'T') { if (read_XDATA(n-22) — 'I') write_XDATA(n-22.'T'); } else { for(i-0;i<231++) write_XDATA(n+i,p_s[i]); n - n + 23; write_XDATA( next jnem, (char) (n/256) ) ; write J(DATA( next jnetrH-1 , (char) (n%256) ) ; 1 } /* */ void scroll JataQ

{ int i; p - ((256) * (read_XDATA(next_mem))) + (read_XDATA(next nem+l)); if (p ~ 0) < displayCN'.'O '.'D'.'A'.'T'.'A'.' ',' ',' '.' ',' '); goto EXIT6;

}

p -=23; while(read_XDATA(p) -» syrjiow) { for(i=0;i<23dtj.tring[i]-read_XDATA(p+i),i++); switch(dt_string[l]) { case 'D': case 'I': case 'T':

{ d[0]=dt_string[l]; d[l]-' ': etmin - (char)((dt_string[20]*256+dt_string[21])/60); /* Inf sec */ etsec - (char)((dt_string[20]*256+dt_string[21])%60); ad toΛscii(etmin); d[2] = c[l]; d[3] - c[2]; adj:o_ascii(etsec); If ( c[l] - ' ') c[l] - '0'; d[4] -':'; d[5] - c[l]; d[6] - c[2]; d[7] - ' '; if (dt_string[l] — 'D') d[8]- ' '; d[9] - 'N'; d[10]= 'E'; d[ll]- 'G'; } else

{ pressure-(float)dt_string[22]; if ( units — 1)

{ ad :o_ascii((char)pressure); d[8] - c[0]; d[9] > c[l]; d[10] » '.'; d[ll] - c[2]; } else

{ d[8] = ' '; int :o_ascii((int)(pressure * 1.4696)); switch (c[4])

{ case 49 :

EET

c[4] = 48; break; case 51 : c[4] = 50; break; case 53 : c[4] - 52; break; case 55 : c[4] - 54; break; case 57 : c[4] - 56; break;

} d[9] = c[2]; d[10] - c[3]; d[ll] - c[4];

} /* end if/else */

} /* end D/I if/else */ break;

} /* switch I/D/T */ case 'Z':

{ d[0] «'Z'; d[l] -'E'; d[2] -'R'; d[3] -'0'; for(i-0;i<9d[4+i]-' ',i++); break;

} case 'R':

{ d[0] -'R' d[l] -'E' d[2] -'A' d[3] -'D' d[4] »'Y' d[5] -' ' d[6] -' ' d[7] »' ' d[8] -' ' d[9] «' ' d[10]»' ' d[ll ' ' break;

1 case 'X':

{ d[0] ='D' d[l] ■■ r d[2] ='S' d[3] .'C d[4] *'0' d[5] _'N' d[6] ,'N' d[7] .'E' d[8] «'C; d[9] »'T'; d[10]»' '; d[ll]-' ' break; } default:

{ d[0] «'E'; d[l] -'N' d[2] -'D' d[3] -' ' d[4] -'O'i d[5] -'F'; d[6] -' d[7] -'D'' d[8] -'A' d[9] -'T'" d[10]-'A'; d[ll]-' display(d[0],d[l].d[2].d[3],d[4].d[5],d[6],d[7],d[8],d[9],d[ 10].d[ll]); delay(2000); goto EXIT6;

} } /* outer switch */ display(d[0].d[l].d[2].d[3].d[4].d[5].dt6].d[7].d[8].d[9],d[ 10].d[ll]); delay(2000); do i if(menu_switch -- 0) goto EXIT6; } while(set_switch -»1); P - 23;

}/* end while */ EXIT6:; do {

}while(menu_switch -» 0); }

/* */ void time_convert() { d[l] = (raw_d_t[3] & OxOF ) + 48; d[0] = ((raw_d_t[3] & 0x3F) » 4 ) +48; d[2] - ':'; " d[4] = (raw_d_t[2] & OxOF ) + 48; d[3] » (rawji_t[2] » 4 ) + 48; d[5] « ':'; d[7] - (raw_d_t[l] & OxOF ) + 48; d[6] = (raw i_t[l] » 4 ) +48;

} I* */ void date_convert() { d[l] - (raw_d_t[6] & OxOF ) + 48; . d[0] = (rawjd_t[6] » 4 ) +48; d[2] - '/'; d[4] - (raw_d_t[5] & OxOF ) +48; d[3] - (raw J _[5] » 4 ) + 48; d[5] - '/'; d[7] - (raw_d_t[7] & OxOF ) + 48; d[6] - (rawji_t[7] » 4 ) + 48;

1 /* */ long swatch_to_seconds{) /* converts a swatch reading of date,hour, minute and seconds to seconds */ i long t; t - (((raw_d_t[5] » 4)*10 + (raw_d_t[5] &OxOF )) * 86400) + ((((raw_d_t[3] & 0x3F) » 4)*10 + (raw_d_t[3] &0x0F )) * 3600) + (((raw_d_t[2] » 4)*10 + (raw_d_t[2] &0x0F )) * 60) + (((rawji_t[l] » 4)*10 + (raw i_t[l] &0x0F ))); return t; } void get_dtstring() /* gets and converts date and time to print string format dtjstring */ { int i; swatchj*ead(); date_convert(); for (i»0;i<8i++) dt_string[i] « d[i]; time_convert(); for (i-0;i<8i++) dtj5tring[9+i] - d[i]; dt_string[8]=' '; dt_string[17] - '\n';

dt_string[18] = 0x00; }

/* */ void start periodQ /* assigns the current time to period_begin */

{ swatch_read(); period_begin = swatch ;o_seconds();

}

/* */ void test_out() /* displays battery and pressure */

{ int i; int ,j; displayCT'.'E'.'S'.'T'.' '.'R'.'O'.'U'.'T'.'I'.'N'.'E'); do

{ do

{

}while (menuj5witch »» 0); adj;o_ascii(read_ad(bat)); d[2] - c[0]; d[3] - c[l]; d[4] - c[2]; adj;o_ascii(read_ad(pres)); d[9] - c[0]; d[10] - c[l]; d[ll] - c[2]; display('B'.':'.d[2].d[3].d[4],' ',' '.'P'.':',d[9].d[10].d[ll]) delay(lOOO);

}while (setjjwitch -« 1); do

{ do i

}whi le (setjswitch — 0); adJ:o_asci i (read_ad(pleg) ) ; d[2] « c[0]; d[3] - c[l]; . d[4] - c[2]; adj:o_asci i (read_ad(nleg) ) ; d[9] - c[0]; d[10] - c[l]; d[ll] - c[2]; displayC+' . ' : ' ,d[2],d[3],d[4], ' ' . ' ' , '-' . ' : ' .d[9],d[10].d[ll]); delay(lOOO);

ET

if ( menu_switch ~ 0 ) { do

{

}while (menujswitch == 0); displayCP'.'R'.'r.'N'.'T'.'r.'N'.'G'.' '.' '.' '.' '); ad_to_ascii(read_ad(bat)); P_s[9] = c[0]; p_s[10] - c[l]; p_s[ll] - c[2]; ad_to_ascii(read_ad(pres)); p_s[2] - c[0]; P_s[3] - c[l]; p_s[4] - c[2]; ad :o_ascii(read_ad(pleg)); p_s[16] - c[0]; p_s[17] - c[l]; p_s[18] - c[2j; ad ;o_ascii(read_ad(nleg)); p_s[23] - c[0]; p_s[24] - c[l]; p_s[25] - c[2]; p_s[0]-'P'; P_s[l]-':': p_s[5]-' '; p_s[6]-' '; p_s[7]-'B'; p_s[8]-':'; p_s[12]-' '; p_s[13]-' '; p_s[14]-'+*; p_s[15]-':'; p_s[19 ' '; p_s[21]-'-'; ρ_s[22]-':'; p_s[26 '\n'; p_s[27]-0x00; outputj.tring(pj_);

} if(set_switch — 0)

{ output_char(LF); output_string(test_header); for(i-0;i<20i++)

{ for(j-0;j<31pj_[j]=' ',j++): for(j=0;j<23p_s[j] - read_XDATA(j+23*i),j++); int_to_asci ((256*(int)p_s[20])+((int)p_s[21]));

p_s[23] = c[0]; p_s[24] = c[l]; P_s[25] = c[2]; p_s[26] = c[3]; p_s[27] = c[4]; ad_to_asci i (p_s[19]) ; p_s[19] = c[0]; p_s[20] = c[l]; p_s[21] = c[2]; ad io asci i (p_s [22]) ; p_s[28] « c[0]; p_s[29] » c[l]; p_s[30] - c[2]; p_s[22] - ' -' ; p_s[3l]«'\n' ; P_s[32]=0x00; if(p_s[0] - 0)

{ output_char('*'); output_char(LF);

1 else

{ p_s[0] +-48; output_string(p_s);

1 } if((memi_switch»«0)&&(set_switch—0)) clear_data();

} }while (TRUE);

}

/* void initialize() /* initialize the hardware */

{

/* initialize timer 1 as baud rate generater for serial interface */ output(PC0N.0x00); /* set SM0D bit to divide by two */ output(TM0D, 0x20); /* Select mode 2 for Timer 1 */ output(THl, SERIAL_RATE); /* set timer 1 reload rate for correct bps */ output(TC0N, 0x40); /* set TR1 to enable Timer 1*/ /* initialize serial transmitter and receiver */ output(SC0N, 0x70); /* select serial mode 1 and enable receiver */ output(SBUF, 0x00); /* output one byte to set TI */ /* initialize Port 1 */ output(Pl.OxFE); /* initialize port with a/d clock low */

}

/* */ void output_syringe_data(char s) /* prints all information form memory

for syringe "s" */ { int i; p - 0; /* start at beginning */ while (read XDATA(p) 1- s) {

P - p + 23; if (p > OxlFFO ) /* 355 entries */ { display ('M'.'E'.'M'.'O'.'R'.'Y',' '.'E'.'R'.'R'.'O'.'R'); output_string(mem_err); outputj;har(c[l3); output_char(c[2]); output_char(LF); delay(20000); goto EXIT5; } } outputj-tring(syrnumstring); adj_o_ascii(s); output_char(c[l]); output_char(c[2]); output_char(' '); output_char(' '); for (i«0;i<8p_s[i]-read_XDATA(p+2+i),i++); p _s[i] - <\n'; p_s[i+l] - 0x00; output_string(p_s); while (read_XDATA(p) — s) i printj^ormat(p); output_string(p_s); p - p + 23; if ( p > OxlFFO ) goto EXIT5;

} EXIT5: ;

} /* , */ void print_forπat(int t) /* formats the memory 32 byte array into the p_s[40] print string format: TYPEXXs NsMM:SSsPP.PsATMssHH:MM:SS or sPPPsPSI */

1 int i; for (i»0;1<23i++) dt_string[i]-read_XDATA(t+i); dt«dt_string[l];

switch(dt)

{ case 'I': case 'D': case 'T': switch(dt >tring[l]) { case 'I':

P_s[0]='I'; p_s[l]»'N'; p_s[2]«'F'; p_s[3]-'L'; p_s[4]-'A'; p_s[5]='T'; P_S[6]-'E'; break; case 'D': p_s[0]='D'; P_s[l3-'E'; p_s[2]-'F'; p_s[3]-'L'; p_s[4]='A'; p_s[5]»'T'; p_s[6]-'E'; break; case % V_: p_s[0]-'T'; p_s[l]-'e'; p_s[2]-'s' P_s[3]-'t'; p_s[4]-' '; P_s[5]-' '; P_s[6]-' ': break; }/*end of dt_string[l] switch */ p_s[7] -' '; p_s[8] -'♦'; ad_to_ascii(dt_string[19]); /* inflation number */ P_s[9] - c[l]; p_s[10] - c[2]; p_s[ll] -' '; etmin - (char)((dt_string[20]*256+dt_string[21])/60); /* Inf sec */ etsec - (char)((dt_string[20]*256+dt_string[21])%60); adj.o_ascii(etmin); p_s[12] - c[l]; P_s[13] = c[2]; ad ioascii(etsec); if(c[l] -» ' ') c[l] - '0';

HEET

p_s[14] =' : ' ; p_s[15] - c[l]; p_s[16] - c[2]; p_s[17] -' ' ; pressure-(float)dt_string[22]; if (dt_string[l]~ 'D')

{ p_s[18] = p_s[19] -

P_s[20] =

P_s[21] -

P_s[22J - p_s[23] - 'N' p_s[24] - 'E' p_s[25] - 'G'

} else

{ if ( units — 1)

{ ad_to_ascii((char)pressure); p_s[18] - c[0]; p_s[19] - c[l]; p_s[20] - '.'; pj5[21] - c[2]; p_s[22] « ' '; p_s[23] - 'A'; p_s[24] « 'T'; p_s[25] - 'M';

} else

{ p_s[18] - ' '; int_to _scii((int)(pressure * 1.4696)); switch (c[4])

{ case 49 c[4] « 48; break; case 51 c[4] - 50; break; case 53 c[4] « 52; break; case 55 c[4] - 54; break; case 57

c[4] = 56; break;

} p_s[19] = c[2] p_s[20] - c[3] p_s[21] = c[4] p_s[22] =' ' p_s[23] ='P' P_s[24] -'S' P_s[25] -'I 1 }

} break; /* end of case IP switch */ case 'R' : p_s[0]-'R'; p_s[l]='e'; p_s[2]-'a'; p_s[3]-'d'; p_s[4]-'y'; for(i « 0;i<21p_s[5+i]= '.i++); break; case 'N'

P_s[0]-'N'

P_s[l]-'e'

P_s[2]-'w'i p_s[3]-' ' p_s[4]-'S 4

P_s[5]-'y';

P_s[6]-'r'; p_s[7]-'i';

P_s[8]-'n'; p_s[10]-'e'

P_s[ll]-' p_s[12]-'

P_s[13]=' break; case 'Z' p_s[0]='Z' p_s[l]-'e' P_s[2]-'r' p_s[3]-'o' P_s[4]-' ' P_s[5]-'S' p_s[6]-'y' p_s[7]='r' p_s[8]-'i'

SUBSTITUTE SHEET

p_s[9]-'n'i p_s[10]»'g' p_s[ll]-'e'

P_s[12]= p_s[13]= for(i=0;i<12ρ_s[14+i]=' '.ι ++ ). break; case 'X' p_s[0]='D'; p_s[2]-'s'; P_s[3]-'C; p_s[4]»'o'; p_s[5]-'n'; p_s[6]-'n!; p_s[7]-'e'; p_s[8]='c' p_s[9]-'f; P_s[10 ' ' p_s[ll ' ';

P_s[12 ' '; p_s[13>' '; for(i-0;i<12p_s[14+i ' '.i++); break; } /* end of dt switch */ p_s[26] - ' '; p_s[27] « ' '; for (i « 0;i<8p_s[28+i]-dt_str1ng[ll+i],i++); p_s[36] - '\n'; p_s[37] - 0x00;

1

/* 5 void main() /* Main Inteliflator Program */

{ int i; displayC ',' ',' ',' ',' ' ,' ',' ',' ',' ',' ',' ',' '); delay(3000); /* stabilization delay */ initialize(); displayCI'.'N'.'T'.'E'.'L'.'L'.'I'.'F'.'L'.'A'.'T'.'R'); delay(20000); /* turn on stabilization delay */ if ( (menujjwitch — 0) && (setjswitch — 0 )) test_out(); 5 display(ver[0],ver[l],ver[2],ver[3].ver[4],ver[5],ver[6],ver [7].ver[8],ver[9],ver[10],ver[ll]);

RESTART:

delay(15000); /* more stabilization delay */ units » 1; max_pres = 100.0; swatchj-ead(); raw_d_t[4] = (rawjd_t[4] & OxDF); /* turn on osc of swatch */ swatch_write(); zerojjres -0; rolljiotO; stabilization(); displayCA'.'U'.'T'.'O'.'-'.'Z'.'E'.'R'.'O'.'r.'N'.'G');

♦ifdef host_debug zero_pres - 20;

♦else for(i-0;i<1000zero_pres - (zero_pres + (float)read_ad(pres)),i++); zero_pres - zeropres/1000;

/* auto iero avg of one thousand readings */ store jnemorystringCZ',0);

♦endif start_period(); infjibr - 0; etsec « 0; etmin =0; pflag-0; first-0; histj^lag - 0;

while(TRUE) i pressure - 0; get_pressure(); if (pressure < 0) histj^lag ■ 0; if (read_ad(nleg) >» nojsyringe)

{ if(pflag) store jnemory_string( ' I ' ,pres_high) ; o e l se storejne oryjJtringCD' ,0) ; store memoryj.tring( 'X' ,0) ; do

{ displayCS'.'Y'.'R'.'I'.'N'.'G'.'E'.' ',' '.' ',' '.' '); delay(2000); 5 displayCD'.'r.'S'.'C'.'O'.'N'.'N'.'E'.'C'.'T'.'E'.'D'); delay(2000); display('P'.'R','E','S','S',' '.'-'.'M'.'E'.'N'.'U','-'); delay(4000);

SHEET

}while ( enujjwitch == 1); goto RESTART;

1 if ((pressure > 7) jj (hist_flag)) { if (! pflag) { if (first =« 0) store nemory_string('R',0); else store nemory_string('D',0); etsec - 0 ; etmin - 0; startj)eriod(); pres_high « 0; inf_nmbr++; first -1; h1st_flag++; pflag++;

} adJ:o_asci 1 ( i nf jwibr) ; d[0]-c[l]; d[l]«c[2]; ad io_asci i (etmin) ; [2] - ' '; d[3] - c[2];

~ d[4] - ':'; a o_asci i (etsec) ; d[5] «c[l]; if ( d[5] -«' ') d[5] - '0'; d[6] - c[2]; d[7] - ' '; if ( units — 1)

{ int_to_asci1((int)pressure); d[8] - c[2]; d[9] - c[3]; dClO] ...'; d[ll] - c[4];

} else

{ d[8] = ' '; int_to_ascii((int)(pressure * 1.4696)); switch (c[4])

{ case 49 : c[4] - 48;

break; case 51 : c[4] - 50; break; case 53 : c[4] = 52; break; case 55 : c[4] = 54; break; case 57 : c[4] = 56; break; 1 d[9] » c[2]; d[10] - c[3]; d[ll] - c[4]; > display(d[0],d[l].d[2].d[3].d[4].d[5].d[6].-d[7],d[8].dt9].d [10].d[ll]); delay(1600); if (pressure > maxj>res) display(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '); delay(800); swatch_read(); infsec - (int)(swatc .o_seconds() - period_begin); etmin = (char)(infsec/60); etsec «= (char)(infsec % 60); if(pres_high < (char)pressure) pres_high - (char)pressure; } else

if (Pflag)

{ store jnemory_string( ' I ' ,pres_high) ; etmin «0; etsec '« 0; pflag - 0; start_period();

} ad _to_asc i i ( i nf jimbr ) ; d[0]-c[l]; d[l]=c[2]; ad .o_ascii (etmin); d[3]-c[l]; if(d[3] « ' ') d[3] - '0';

SHEET

d[4]=c[2]; ad :o_ascii(etsec); d[6]=c[l]; if(d[6] == ' ') d[6] - '0'; d[7]=c[2]; if (first — 0)

{ swatch_read(); time_convert(); display(d[0].d[l],d[2].d[3].d[4].' '.' '.'R'.'E'.'A'.'D'.'Y'); 1 else { if (pressure < 0 ) display(d[0],d[l].' '.d[3].d[4].':'.d[6],d[7].' '.'N'.'E'.'G'); else display(d[0].d[l].' '.d[3].d[4].':'.d[6].d[7],' '.' '.' '.'0'); delay(2400); swatch_read(); infsec « (int)(swatch ;o_seconds() - period_begin); etmin - (char) (infsec/60); etsec = (char) (infsec % 60); } if (menujjwitch -» 0 ) menu();

}

} of main */

/* IFC0DE2.C Second module of the Intelliflator code */

♦include <io51.h> /* required for bit_set, read_X */ ♦define TRUE 1 ♦define FALSE 0 ♦define LF 10 /* ASCII Line feed */

♦define pres '0' /* ch 0 on a/d for pressure */ ♦define bat '3' /* ch 3 on a/d for Battery voltage */ ♦define nleg '1' /* ch 1 on a/d for negative transducer leg */ ♦define pleg '2' /* ch 2 on a/d for positive transducer leg */ ♦define swatch OxlFFF /* swatch scratch address */ ♦define menu_switch read_bit(Plj3_bit) #define setjswitch read_bit(Pl_7_bit)

♦define no_syringe 100 /* the a/d of nleg above which is no syringe plugged in */

const char pattern[8] = {0xC5,0x3A,0xA3,0x5C,0xC5,0x3A,0xA3,0x5C}; extern char raw_d_t[8]; /* raw date and time from/to swatch */ extern char c[5]; /* five ascii characters */ extern float pressure; /* syringe pressure */ extern float zerojires; /* syringe reading for zero pressure */ extern char d[12]; /* display character array */ extern char infjimbr; extern char units; extern float max_pres; extern char dt;

extern void display(); extern void storejιιemory_string(char typ,char p); extern void date_convert(); extern void time_convert(); extern void scroll_data(); extern void digit_set(char n);

void dt_read(); void menu(); void delay(int d); void int ;o_ascii(int n); void swatch_attn(); void swatchj*ead(); void swatch vriteO; void adj;o_ascii(char n); void get_pressure(); void output :har(char c); void output_string(char * msg); g void clear_data(); char read_ad(char n);

/*

void menuO /* menu handler */

{ int i; if (zero_pres 1» 0 ) /* skip this section if a syrings isnt plugged in */ { " do

{ displayCM'.'A'.'R'.'K'.' '.'A'.'S'.' '.'T'.'E'.'S'.'T'); delay(lOOO);

}while ( enujjwitch «- 0 );

do /* mark last inflation as "test" */ { if ( setjjwitch — 0 ) i store_memory_string(,'T',0); /* if(inf_nmbr !- 0) infjimbr—;

*/ ♦ifdef host_debug printf("test inflation\n"); ♦endif goto EXITMENU; /* bypass rest of menu if only test marking */ } get_pressure(); if ( pressure > 7 ) goto EXITMENU; }while ( menujjwitch »- 1 ); } /* if zeroj.res */ do { }while (menujswitch — 0 );

/* -m---.--.--r..-^-^-r-r^.."..-..". . -r.r^..--r..-- */ do /* scroll through stored data */ { displayCS'.'C'.'R'.'O'.'L'.'L',' ','D'.'A'.'T'.'A'.'?'); if ( set_switch — 0 )

{ scroll_data(); /* scroll data past display one line per Pl_7 push in reverse order */ goto EXITMENU;

} if ( zerojres I« 0 ) i get_pressure(); if ( pressure > 7 ) goto EXITMENU;

}

}while ( menujjwitch »- 1 ); delay(lOOO); do . {

}while (menujjwitch -= 0 );

/* "_-_-_-_-_-_"_-_-_-_- -_-_-_-.^_-_-_-_-_-_-_-_ */ if (zero_pres ~ 0 )

{ do /* clear the stored inflation data */ { displayCC'.'L'.'E'.'A'.'R'.' '.'D'.'A'.'T'.'A',' '.'?'); if ( set_sw.itch — 0 ) { display('A','R'.'E'.' '.'Y'.'O'.'U',' ','S'.'U'.'R'.'E'); do <

}while (set jwitch — 0 ); delay(lOOO); do { if ( setjjwitch «= 0 )

{ displayCD' . 'A' . 'T' . 'A' , ' ' , 'C , 'L' , 'E' , 'A' , 'R' , 'E' , 'D' ); clear_data(); delay(5000); goto EXITMENU; } }while (menujjwitch — 1 ); goto EXIT2; 5 >

}while ( menujjwitch -= 1 ); delay(lOOO); do {

}while (menujjwitch — 0 ); Q } /* zero_pres */ EXIT2:

/* -_-_-^_^"_-_-_-_"_^-_"^^_-_ ^_^-_-_-_- */ if (zero_pres != 0 ) /* don't do if no syringe */

1 do /* re-zero syringe */ { 5 displayCZ'.'E'.'R'.'O'.' '.'S'.'Y'.'R'.'I'.'N'.'G'.'E'); if (setjjwitch -= 0 ) { displayCA'.'R'.'E'.' '.'Y'.'O'.'U'.' ','S'.'U'.'R'.'E');

STITUTE SHEET

do

{

}while (setjjwitch == 0 ); delay(lOOO); do 1 if (setjjwitch == 0 )

{ displayCZ'.'E'.'R'.'O'.T.'N'.'G',' '.' '.' '.' ',' '); zeropres » 0; for(i=0;i<1000zero_pres - (zerojDres + (float)read _d(pres)), i++); zero_pres = zero_pres/1000;

/* auto iero avg of one thousand readings */ store jnemory_string( 'Z' ,0) ; do

{

}while (setjjwitch — 0 ); goto EXITMENU; >

}while (menujjwitch — 1); goto EXIT3; 1 get_pressure(); if ( pressure > 7 ) goto EXITMENU; }while (menujjwitch -« 1 ); } /* if not zero */ EXIT3: /* */ do /* set the maximum pressure limit */ i if (units — 1)

{ int :o_ascii((int)maxj.res); displayCM'.'A'.'X'.'C.'A'.'T'.'M'.'J'.c^l.cm.'.'.cW); } else { int_to_ascii((int)(max_pres * 1.4696)); if (c[4] > 52)

{ c[3]++; if (c[3] > 57 ) i c[2]++; if ( c[2] < 48 ) c[2] - 49; c[3] - 48;

1 } c[4] - 48; displayCM'.'A'.'X'.'C.'P'.'S'.'I',')',' '.c[2].c[3],c[4]); } do

{

}while (setjjwitch -= 0 ); delay(500); if ( setjjwitch «» 0 ) { max_pres - maxj.res + 5; if (max_pres > 200 ) maxjpres - 10; } . if ( zero_pres 1= 0 ) { get_pressure(); if ( pressure > 7 ) goto EXITMENU; } }while ( menujjwitch — 1 ); do { }while (menujjwitch — 0 ); /* -----_"_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ */ if (zero_pres ~ 0)

{ do /* set new time into swatch */ { swatch *ead(); time_convert(); dispTay(d[0],d[l],d[2].d[3].d[4].d[5],d[6].d[7],' ','0','K'.'?'); if( setjjwitch — 0 ) { dt «■ 0; /* set time mode */ do {

}while (setjjwitch ~ 0 ); delay(lOOO); digit_set(0); digit_set(l); digit_set(3); digit_set(4); digit_set(6); digit_set(7); swatch_read(); raw_d_t[3] - (((d[0]-48)&0x0F)«4)j((d[l]-48)&0x0F); raw_d_t[2] = (((d[3]-48)&0x0F)«4)|((d[4]-48)&0x0F);

raw_d_t[l] = (((d[6]-48)&0x0F)«4)|((d[7]-48)&0x0F); swatch_write(); } }while ( menujjwitch == 1 ); } /* zero_pres */ do {

}while (menujjwitch == 0 ); delay(lOOO);

/* "_^"_-_-_-_r_-_-_-^_-_-_-_-_"_"_-_-_-_-_ */ if (zero_pres -« 0 )

{ do /* set new date into swatch */ { swatchj*ead(); date_convert(); display(d[0],d[l].dt2].d[3],d[4].d[5],d[6].d[7],' '.'0'.'K','?'); if( setjjwitch -» 0 ) { dt - 1; /* set date mode */ do {

}while (setjjwitch — 0 ); delay(lOOO); digit_set(0); digit_set(l); digit_set(3); digit_set(4); digit_set(6); digit_set(7); swatch_read(); raw _t[6] » (((d[0]-48)&0x0F)«4)!((d[l]-48)S0x0F); raw_d_t[5] - (((d[3]-48)&0xOF)«4)!((d[4]-48)&OxOF); raw_d_t[7] = (((d[6]-48)&0x0F)«4)|((d[7]-48)&0x0F); swatch_write(); } }while ( menujjwitch — 1 ); delay(lOOO); } /* zerojjres */ • do

{

}while (menujjwitch —= 0 );

/* ^-_ _ ^_-_^_ _-_-_^^-_-_-_-_"^_-_-_-_-_-_-_ */ do /* set inflation pressure units */ < if(units «= 1)

{ display(' '.'P'.'R'.'E'.'S'.' . - « . '.'A'.'T'.'M'.' ');

do

{

}while ( setjjwitch -» 0 ); delay(500); if ( setjjwitch — 0 ) units - 0;

> else

{ displayC '.'P'.'R'.'E'.'S',' '.'-'.' '.'P'.'S'.'I',' '); do { }while ( setjjwitch -= 0 ); delay(500); if (. setjjwitch — 0 ) units - 1;

} if ( zero_pres 1« 0 ) < get )ressure(); if ( pressure > 7 ) goto EXITMENU;

}

}while ( menujjwitch »» 1); do

{

}while (menujjwitch -« 0 );

/* -_-_-_-_-_^-_-_"_-_"^_-_-_-_-_-_-_-_-_-_"_ */

EXITMENU: do i }while (menujjwitch «« 0 ); delay(lOOO); } /* end of menu */

/* */

/* */ void delay(int d) { int t; for(t = 0;t<dt++) ;

} /* */ void 1nt_to .sc11(int n) { if (n/10000 < 1) c[0] - ' '; else {

EET

c[0] - 48 + (n/10000); c[l] - n/10000; n=n-(c[l] * 10000);

} if (n/1000 < 1 ) if ( c[0] = - ' ') c[l] = » else c[l] - '0'; else

{ c[l] - ■ 48 + (n/1000); c[2] = = n/1000; n « n- (c[2] * 1000);

. 1 if (n/100 < 1 ) if ( c[l] - ' ') c[2] - else c[2] - • '0'; else

{ c[2] . - 48 + (n/100); c[3] . - n/100; n - n- -(c[3] * 100);

} if (n/10 < 1 ) if ( c[2] - ' ') c[3] . - ' '; else c[3] . - '0'; else

{ c[3] - 48 + (n/10); c[4] - n/10; n « n -(c[4] * 10);

} c[4] - 48 + n;

}

/* */ void swatch_attn()

{ int i.j; char out;

out « read_XDATA(swatch); /* duπmy read to set chip pointer */ for(i-0;i<8i++)

{

out = pattern[i]; for(j=0;j<8j++)

{ write_XDATA(swatch,out); out = out » 1;

} }

/" void dt_read() { char cin.cinr; int i.j;

swatch_attn(); for(i»0;i<8i++)

{ cin -0; for(j-0;j<8j++)

{ cinr « read_XDATA(swatch); cinr - cinr & 0x01 cinr = cinr « j; cin » cin | cinr;

} raw_d_t[i] » cin; } 1

/* void swatch_read() { C ar t[8]; int i; char OK; do

{ 0 OK - 0; dt_read(); for(i=0;i<8t[i raw_d :[i],i++); dt_read(); for (i-l;i<8i++) /* skip 1/00 sec */

{ if (t[i] 1= raw_d_t[i]) 5 0K++;

} }while (OK != 0); /* continue reading swatch till it agrees */

T

void swatch_write()

{ char cout; int i ;

swatch_attn(); for (i=0;i<8i++) { cout ■ raw_d_t[i]; if(i — 3) cout.- cout & 0x3F if(i - 4) cout = 0x10; for(j=0;j<8j++)

{ write_XDATA(swatch,cout); cout - cout » 1; } } }

I* void ad _o_ascii(char n) { if (n/100 < 1) c[0] - ' '; else

{ c[0] - 48 + (n/100); c[l] - n/100; n - n - (c[l] * 100);

} if ( n/10 < 1 ) if ( c[0] — ' ') c[l] - ' '; else c[l] - '0'; else

{ c[l] - 48 + (n/10); c[2] - n/10; n - n - (c[2] * 10);

} c[2] - 48 + n;

}

void get )ressure() /* reads syringe pressure */

{ int i;

♦ifdef host iebug printf("pressure**"); pressure - getch(); ♦else for(i=0;i<10i++) pressure = (pressure + (float)read_ad(pres)); ♦endif pressure « pressure/10; pressure « pressure - zero_pres; if (pressure > 200) pressure ? 200;

}

/* _._, */ void output_char(char c) /* output character to serial interface */

{ while ((read_bit(Pl_3_bit))i|(lread_bit_and_clear(TI_bit)));

/* wait for CTS and transmit buffer empty */ output(SBUF.c); /* output character to transmitter */

1

/* */ void output_string(char * msg ) /* output string at pointer to serial interface */

{ while(*msg)

{ output_char(*msg++);

} >

/* */ void clear_data() /* clears data memory and resets syr pointer to zero */

{ Int i; for(i-0;i<0x2000i++) write_XDATA(i,0);

}

/* */ char read_ad(char n)

{ char adout « 0;

♦ifdef hostjiebug printf("input a/d for %c",n);

EET

adout - getch(); ♦else

clear_bit(Pl_l_bit); /* cs low */ set_bit(Pl_2_bit); /* start bit DI */ set_bit(Pl_0_bit); /* clock rise (DI read) */ clear_bit(Pl_0_bit); /* clock fall */ set_bit(Pl_2_bit); /* Single ended measurement */ set_bit(Pl_0_bit); /* DI read */ clear_bit(Pl_0_bit); /* clock fall */ switch(n) 0 { case '0' : clear_bit(Pl_2_bit); /* 0/S - 0 */ set_bit (Pl )_bit); clear_bit(Pl_0_bit); ■ clear_bit(Pl_2_bit); /* select = 0 */ set_bit(Pl_0_bit); 5 clear_bit(Pl_0_bit); break; case '1' : set_bit(Pl_2_bit); /* 0/S - 1 */ set_bit (Pl_0_bit); clear_bit(Pl_0_bit); clear_bit(Pl_2_bit); /* select - 0 */ 0 set_bit(Pl_0_bit); clear_bit(Pl_0_bit); break; case '2' : clear_bit(Pl_2_bit); /* 0/S = 0 */ set_bit (Pl_0_bit); clear_bit(Pl_0_bit); 5 set_bit(Pl_2_bit); /* select - 1 */ set_bit(Pl_0_bit); clear_bit(Pl_0_bit); break; case '3' : set_bit(Pl_2_bit); /* 0/S - 1 */ 0 set_bit (Pl_0_bit)r clear_bit(Pl_0_bit); set_bit(Pl_2_bit); /* select - 1 */ set_bit(Pl_0_bit); clear_bit(Pl_0_bit); break;

} 5 set_bit(Pl_2_bit); /* set up port for input */ set_bit(Pl_0_bit); /* dummy rear for A/D */ clear_bit(Pl_0_bit); set_bit(Pl_0_bit);

if ( read_bit(Pl_2_bit)) adout = adout + 128; clear_bit(Pl_0_bit); set_bit(Pl_0_bit); if ( read_bit(Pl_2_bit)) adout - adout + 64; clear_bit(Pl_0_bit); set_bit(Pl_0_bit); if ( read_bit(Pl_2_bit)) adout = adout + 32; clear_bit(Pl_0_bit); set_bit(Pl_0_bit); if ( read_bit(Pl_2_bit)) adout - adout + 16; clear_bit(Pl_0_bit); set_bit(Pl_0_bit); , if ( read_bit(Pl_2_bit)) adout - adout + 8; clear_bit(Pl_0_bit); set_bit(Pl_0_bit); if ( read_bit(Pl_2_bit)) adout - adout + 4; clear_bit(Pl_0_bit); set_bit(Pl_0_bit); if ( read_bit(Pl_2_bit)) adout - adout + 2; clear_bit(Pl_0_bit) set_bit(Pl_0_bit); if ( read_bit(Pl_2_bit)) adout - adout + 1; clear_bit(Pl_0_bit); setJit(Pl_l_bit); /* de-select */ ♦endif return adout; }

EET