TIME RECORDING DEVICE

Abstract: A time recording device (10) includes a bar code reader (11), a display (12), an internal, programmed microprocessor with real-time clock and associated memory, and menu control means (13). When a bar code carried, for example, by a case file is scanned by the device, the latter immediately starts to allocate time to that case and displays this time on the display (12); any previously-current case has its timing frozen and is no longer displayed. Against the current case can be set in specific time and disbursement items, preferably by scanning in appropriate bar codes. The total time spent in a current working session may also be timed. An interrupt button (14) enables a user to immediately start timing and interrupt with timing of the current case being temporarily suspended.

Description: ΗME RECORDING DEVICE The present invention relates to a time-recording device for use in particular, but not exclusively, in an office to record time and disbursements incurred against particular cases (for example, client patent application files in a firm of patent attorneys). It is known to provide a programmable, hand-held bar-cod reader device with a display, internal microprocessor, memory and real-time clock, an example of such a device being the Microwand II E produced by Hand Held Products Inc. of Charlotte, North Carolina, USA. A typical example of the use of such a device would -be to track actions on objects that carry identifying bar codes. Each scanning of the code on an object is arranged to create an internal record including a time stamp. These time-stamped records are subsequently used for monitoring and analysis purposes. Existing devices do not, however, provide for the ready monitoring of time spent on a succession of cases such as may be worked on in an office; furthermore, there is no provision to associate both time and disbursement items with the same case. According to one aspect of the present invention, there is provided a time-recording device comprising: case control means responsive to user input to provide a case record that is thereupon taken as the current case record to the exclusion of other case records previously provided by the device, timing means for timing at least one period relevant to the current case-record , display means for enabling the current value of a said at least one period being timed by the timing means to be displayed, - user-controlled ID reading means for reading in case identities (IDs): and association means for associating a case ID read in by the ID reading means with a particular said case record. The said user input to which the case control means is responsive to provide a case record, is preferably the reading in of a case ID in which event the said association means is arranged to associate a read-in case ID with the case record provided by the case control means in response to the reading in of that case ID. Thus, for example, if case files fat an office have identifying bar codes that can be read in by the ID reading means, a αser simply needs to scan the identifying bar code of each file as h is picked up to be worked on, and the time spent on the file is automatically noted and displayed. An alternative arrangement for starting a case would be to provide user-operable start means, such as a posh button, shich when operated caused the case control means is responsive to provide a case record ; the association means would then, for example, be arranged to associate a read-in case ID with the current case record. Preferably, the said at least one period timed by die timing means includes the total period for which a said case record is the current case record; however, where as is described later, provision is made for sub-dividing the time spent on a case, the timing means may alternatively, or additionally, time the individual sub-divisions. Advantageously, the device is of stand-alone, hand-held form with memory means for storing said case records, the device being operative to create and store a new case record for each new case ID read during a working session, and die device further comprising download means for enabling the case records stored during a working session to be downloaded to other apparatus. Preferably, the time-recording device further comprises: D-Item selection means operative when a case record is current to enable a user to select a disbursement item (D-Item) ID, - D-itcm control means responsive to selection of a D-Item ID to provide a corresponding item record associated with die case record forming the current case record, and input means for inputting a measure and storing it with said item record. Advantageously, the D-Item selection means is constituted by said ID-reading means adapted to read D-Item IDs and to distinguish them as such from case IDs. Again, the time-recording device preferably also comprises: T-Item selection means operative when a case record is current to enable a user to select a time item (T-Item) ID, and - T-Item control means responsive to selection of a T-Item ID to provide a corresponding item record that is associated with the case record forming the current case record and constitutes for die latter the current T-Item record to the exclusion of other T-Item records associated with that case record, said timing means being arranged to time the period during which a T-Item record of tiie current case record constitutes the current T-Item record whilst the latter remains the current case record. The T-Item selection means is advantageously constituted by said ID-reading means adapted to read T-Item IDs and to distinguish them as such from case IDs (and also D-Item IDs if die device is arranged to read the latter). Preferably, the time-recording device further comprises interruption means responsive to user input, to suspend timing of airy current case record and immediately to start timing the interruption, said interruption means being responsive to subsequent user input to offer to the user, and act upon a selected one of, at least two of the following choices: teπmnation of intemiption timing with restoration of timing for any current case; the accumulated interruption time not being stored as a case record time. - termination of intemiption timing with restoration of timing for any current case, the accumulated interrupt time being stored in a corresponding case record. termination of intemiption timing with the interruption time being stored in a corresponding case record which is made die current case record in preference to any case record the timing in respect of which was previously suspended. According to another aspect of the present invention, there is provided a time-recording device, comprising: case control means responsive to user input to provide a case record d at is thereupon taken as the cuueut case record to the exclusion of other case records previously provided by the device. timing means for timing the period during which a case record is the current case-record, D-Item selection means operative when a case record is current to enable a user to select a disbursement item (D-Item) ID, D-item control means responsive to selection of a D-Item ID to provide a corresponding D-ltem record associated with the case record forming the current case record, input means for inputting a measure and storing it with said D-ltem record. - T-ltem selection means operative when a case record is current to enable a user to select a time item (T-Item) ID, and T-Item control means responsive to selection of a T-Item ID to provide a corresponding T-Item record that is associated with the case record forming the current case record and constitutes for the latter the current T-Item record to the exclusion of other T-Item records associated with that case record. said timing means being arranged to time the period during which a T-Item record of die curtcnt case record constitutes the current T-Item record whilst the latter remains the current case record. A time recoding device embodying the present invention will now be described by way of non-limiting example, with reference to the accompanying diagrammatic drawings, in which: Figure 1 is a general view of the time recording device in use; Figure 2 is a diagram of a conceptacle case record include a head entry and multiple item entries; Figure 3 is a diagram illustrating the main functional components and register of the time recording device; Figure 4 is a diagram depicting a linked-list data structure providing a practical implementation of the Figure 2 record; Figures - together provide a flow chart of the main program run by the time 5A & 5B recording device to poll its inputs in a cyclic manner; Figure 6 is a state transition matrix showing what action function are initiated upon receipt of an input stimulus by the time recording device, the action function initiated being dependent on the current state of the device; Figure 7 is a state transition diagram corresponding to the state transition matrix of Figure 6; Figure 8 illustrates the contents of a display of the time recording device for each of its states A to N; and Figure 9 is a flow chart of a display program run periodically by the time recording device. The hand-held time recording device 10 shown in Figure 1 comprises a code reader 11 (for example, a bar code reader or optical character reader) for hand scanning case identity codes and other codes carried, for example, on the front of a case file; a display 12 (for example, an LCD display) made up of three multi¬ character display fields 12A, 12B and 12C; two control buttons in the form of a menu push-button 13 and an interruption push button 14; and a keypad 15 provided with an "Enter" key 16 and a group of numeric keys 17 including, in addition to number keys '0' to '9', a decimal point key and a backspace (delete) key (depicted by an ideodiagram). The time recording device is intended to record the allocation of rime throughout the course of a working day with time being set down to each case that is worked on. The cases worked on are identified by a case identity (ID) code scanned in by the code reader 11. For each case, a record is kept both of the total time spent on the case and of the time spent on particular classes of task (classified, for example, by type of work or by personnel involved and here referred to as "time items") the identities of which are also entered by scanning the code reader 11 over an appropriate time item ID code. In addition, each case may have disbursement items allocated to it identified by particular disbursement ("disb.") items IDs scanned in by the code reader 11 and measured by a numeric value input through the keypad 15 (this measure could be a straight number such as the number of photocopied pages taken or a cost figure - the disb. item ID provides the appropriate context for interpreting the measure). Thus, for each case a record is assembled that in conceptual terms will be in the form shown in Figure 2 and comprise a head entry 6 made up of case ID, total time identifier, and total time measure; and a plurality of item entries 7 each made up of case ID, an item ID, and a measure, some of these item entries being time item entries 8 and others being disb. item entries 9. In general terms, the time-recording device operates and is used as follows. At the start of the working day, the device 10 is switched on by a press of the menu button 13 and immediately starts to record the total time spent during the working day (that is, until the device is switched off again). Unless and until a case ID is scanned in, the display 12 will show the total time so far elapsed and the amount of time not spent on particular cases (the "unassigned" time). Upon a case ID being scanned in using the code reader 11, the time- recording device 10 creates a new case record with a head entry conceptually corresponding to entry 6 of Figure 2, and thereafter assigns time to that case whilst freezing its timing of unassigned time. This case is taken as the "current" case either until specifically terminated or until superseded by another case; in both these circumstances, timing of the case is frozen. The head entry for the current case is displayed on the display 12. _ If a time item ID is scanned to indicate that a particular type of task is being carried out on the current case, then a time entry is created for the record, this entry conceptually corresponding to an entry 8 of Figure 2. This time item is taken as the "current" time item for the current case and is timed either until terminated or until superseded; in both these circumstances, timing of the item is frozen as it also is if the current case ceases to be current. The current time item is displayed on display 12 whilst current. If a further time item ID is scanned in, then a new time item entry is created for the case and this time item becomes the current time item which is timed and displayed. If the current time item is specifically terminated then the display defaults to displaying the head entry (including total time) for the current case. If a new case ID is scanned in whilst another case is current, it is assumed that work on the latter case has now ceased and work has begun on the newly identified case. Accordingly, a new case record with a new head entry is created and this case is set to the current case, freezing timing on the previously current one and superseding it on the display 12. If the current case is specifically terminated without a new current case being identified, then the device 10 reverts to its first display of total time and unassigned time and restarts its timing of unassigned time (the timing of total time having been continued throughout all). With regard to disbursement (disb.) items, whenever a case is current, disb. items may be recorded in respect of that case by scanning in a disb. ID using the code reader 11. This creates a new disb. item entry for the case record, this entry conceptually corresponding to an entry 9 of Figure 2. This new disb. item is then temporarily displayed on the display 12 and the user has the oppoπunity to enter in a numeric measure for that item using the keypad 15; however, after a given period the display will revert to displaying the current time item for the case (or the head entry if no current time item exists). The timing functions of the device 10 are unaffected by the entry of disb. items. Should a case ID, or an item ID (time or disb.) for a given case, be entered more than once (because, for example, the case has been picked up again to be worked on further), then the previous entry in respect of that case or entry is reactivated and updated rather than a new entry being created. Provision is also made for deletion of case and item entries through various menus accessible by operation of the menu button 13. At the end of the working day, all the case records held in the device 10 are downloaded, for example, to an accounting system for analysis and billing. Considering now the structure of the time-recording device 10 in more detail. Figure 3 shows the main components of a processor sub-system 19 that is preferably contained within the body of the device 10. This sub-system 19 is built around a microprocessor 20 that communicates via a bus system 21 with other components of the sub-system, including: an interface unit 22 that interfaces the sub-system to the external input and output devices constituted by the code reader 11, the buttons 13, 14, the keypad 15 and the display 12 (the latter being connected via an associated buffer 18 that temporarily stores"the data currently being displayed); a resettable clock 25 for provided a running time measure upon being polled by the microprocessor 20; ROM memory 23 for permanent data storage: and _ RAM memory for storing transient data (including the case records 35). A characteristic of office work is the unexpected interruption. The time- recording device 10 provides for this eventuality by provision of the interruption button 14. When this button 14 is temporarily depressed, it causes the timing of any current case and any associated current time item to be frozen, and instead immediately starts to time a temporary new case that is identified by an internally-generated temporary ID such as "UKxx" where "UK" stands for 'unknown' and "xx" represents a serial number assigned by the device 10. The display 12 displays this - temporary ID together with the duration of the interruption. Whilst in this state, the proper case ID can be scanned in and it will replace the temporary ID; a time item ID can also be scanned in. At the end of the interruption, the temporary interruption case can either be deleted with its accumulated time added to the total of unassigned time, or it can be timed into a regular case record that may optionally be made current. The RAM memory 24, in addition to holding the case records 35, is used to hold a number of registers that keep track of the operation of the time-recording device. A key one of these registers is the register 30 that holds the current state of a state machine which controls the operation of the device 10; this state machine is primarily implemented by the S-T-T function 28 and the action functions library 29, as will become clear hereinafter. The other main registers held in the RAM memory 24 can conveniently be grouped into four groups 31 to 34 as follows: Group 31 (registers 39 to 43) - miscellaneous group; Group 32 (registers 44, 45) - overall time group: Group 33 (registers 46 to 48) - current case group: Group 34 (registers 49 to 52) - interruption group. Before considering the registers in further detail, it is worthwhile reviewing the form of the data structures used to store the case records. Figure 4 shows a case record corresponding to the case 5 of Figure 2. As can be seem, the case record comprises a linked list starting with a case header 61 made up of four fields 63 to 66, and including four items 62 each of the same general form: the header 61 corresponds to the head entry 6 of Figure 2 whilst the items 62 correspond to the item entries 7. More particularly, field 63 of the case header 61 is used to store the case ID of the case concerned whilst field 64 records the total time spent on the case. Field 65 contains a pointer to the first of the items 62. Field 66 contains a pointer to the header 61 of the previous case (that is, the case record created last before the one under consideration); the pointers in the fields 66 of the case records thus serve -to link the case records into a list. Each_item 62 comprises three fields 67 to 69. Field 67 contains an item ID which by its nature indicates whether the item relates to a time item or a disb. item. Field 68 contains a measure for the item (this being a time measure for a time item). Field 69 contains a pointer to the next item, if any, absent a next item, the pointer in field 69 is null. Returning now to a consideration of the registers 39 to 52, the purpose of each register is as follows: GROUP 31 Register 39 contains pointer to header 61 of the last- created case record thereby giving access to the full linked list of case records: Register 40 contains a previous reading of clock 25; Register 41 used to store a timeout value as it is being decremented; Register 42 contains the identity of the next internally- generated temporary case ID to be used if one is required: Register 43 used to accumulate a measure input through the numeric keys 17 prior to storage oi the measure; GROUP 32 Register 44 contains the total elapsed time since switch on of the device; Register 45 contains the total of unassigned time: GROUP 33 Register 46 contains a pointer to the current case header 61 (if any); Register 47 contains a pointer to the current time item (if any) of the current case; Register 48 contains a pointer to the last-entered disb. item (if any) of the current case; GROUP 34 Register 49 contain the state of the device state machine at the time a current interruption was made; Register 50 contains the case ID of a current interruption; Register 51 contains a possible time item ID for a current interruption; Register 52 contains the total time of a current interruption. As already noted, the operation of the device 10 is based on a state machine embodied in the S-T-T function 28 and action functions library 29. The role of the main program 26 is to poll the device input elements (code reader 11, buttons 13,14, keypad 15) and clock 25, and under defined conditions produce specified stimuli for supply to the state machine; the latter then initiates appropriate actions (such as updating and changing both case records and time and disb. items), and in particular circumstances will also change its state. The main program 26 further operates to service the display by updating the contents of the display buffer 18 in dependence on the current state of the state machine. The main program is illustrated in flow chart form in Figures 5 A and 5B. The state machine is represented in Figure 6 by a state transition table relating particular actions to particular input stimuli for each state of the state machine; in addition. Figure 7 represents the state machine in the form of a state transition diagram in which each state is represented by a node and transitions between states are initiated by predetermined stimuli (this diagram does not show the actions consequent on the receipt of particular stimuli in each state, such information being given in the Figure 6 table). Figure 8 represents the display provided in each state of the state machine, and Figure 9 illustrates, in flow chart form, the display function 36 called by the main program 26 to update the display 12 to present the appropriate display in correspondence to Figure 8. The display function 36 also serves to provide a menu facility as will be described hereinafter. The general method of interaction between the foregoing operational elements is as follows. The main program 26 polls the various input devices and in appropriate circumstances will pass a particular stimulus to the S-T-T function 28. The function 28 serves to implement the state machine in accordance with the state transition table of Figure 7, and, as such, provides for fourteen states A to N, six of which (states B,F,H,J,L,N, shown underlined in Figures 7 and 8) constitute menu states. As already noted, the actual current state of the state machine is held in the state register 30. The function 28 recognises sixteen different stimuli (see left-hand column of Figure 6). Given the current state and the identity of a received stimulus, the function 28 will determine what actions need to be undertaken and what the resultant state should then be. In Figure 6, the actions appropriate to a particular pairing of stimulus and state are shown in the Table cell at the intersection of these parameters; the state in which the system should reside at the conclusion of these actions is indicated at the bottom of the cell. Note that not all pairings of stimulus and state are possible (for example, in any of the menu states, only data from the menu button 13 is processed by the main program to produce a "M(OPTxx)" stimulus), non-viable pairings are shown by a cross in the corresponding cell in Figure 6. Upon the S-T-T function 28 determining what actions are required, it will call the appropriate action functions from the action functions library 29 to execute these actions; after the actions have been carried out, the S-T-T function updates the state register 30 as appropriate. The action functions themselves (which are described in details in Appendix I hereto) may require a parameter to be passed to them. Having regard to the foregoing, it will be appreciated that to operate the device state machine upon determining the presence of a relevant stimulus, the main program 26 will call the S-T-T function 28 and pass at least two parameters (stimulus, state) and possibly a third parameter (action parameter) if such parameter may need passing to an action function that could be called by the S-T-T function. Thus, in Figure 5, the line CALL S-T-T function ('Enter' state,,) refers to a function call to the S-T-T function with the stimulus parameter set to identify the stimulus 'Enter' , the state parameter set to the current state held in register 30, and the action parameter set to nil. Upon the main program 26 completing its polling of the input devices (having called the S-T-T function as appropriate in response to the inputs detected), the program 26 calls the display function 36 which updates the display 12 in dependence on the current state recorded in the register 30. Considering next the main program 26 in more detail, as illustrated in step 71 of Figure 5A, upon first start up of the program (that is, upon the device 10 being switched on), the system is reset; this involves clearing (setting to zero) all registers 39 to 52, initialising register 42 to "UK1" , resetting (that is, zeroing) the clock 25, clearing all case records 35, and setting the current state to "A" in register 30. Thereafter, the program 26 enters a cycle in which it first polls the clock 25 (step 72), the code reader 11 (step 73), the menu button 13 (step 74), the interruption button 14 (step 75, Figure 5B) and keypad 15 (step 76), before finally calling the display function (step 77) to update the display. During each polling step 72 to 76, the program 26 will call the S-T-T function as and when appropriate. Considering the polling steps in more detail, in step 72 when the clock 25 is polled it returns its current time value. This value is subtracted from that in register 40 to derive a clock increment Δ indicative of the time eiapsed since the clock was last polled; the value in register 40 is then replaced by the current clock value. Thereafter, the S-T-T function 28 is called (stimulus 'clock') and passed the clock increment Δ so that is can update the appropriate time measures (total time, case time/unassigned time, item time, interruption time) in dependence on the current state machine state, this updating being effected, of course, by appropriate functions from the library 29. Finally, a time out register 41 is decremented by Δ and checked to see if it has timed out, if so, the S-T-T function is called (stimulus "Timeout"), this event only being relevant to disb. items states I and K. In step 73 the code reader 11 is polled for an input ID code. If one is available, this code is taken in and checked for validity and type by calling the valid-code input function 27. This latter function will indicate if a code is a valid case ID, time-item ID, or disb. item ID or none of these. If a valid code is present, the S- T-T function is then called with stimulus set to "valid case ID", "valid T-item ID" or "Valid D-item ID" as determined by the input code type. The S-T-T function 28 then initiates appropriate action (for example, generation of a new case or item). In step 74, the menu button 13 is polled. If this button is in a depressed (activated) state, the subsequent depression time is monitored, initially to determine whether the depression is a short one (that is, below a predetermined time ceiling) or a long one. Generally speaking, a short press tabs a display cursor whilst a long press causes display of a menu of user options (state dependent options). Upon the main program determining the menu button depression to be short or long, the S-T-T function 28 is called with stimulus set to "MB(Short)" or MB(Long)" as appropriate. If the button depression was long, then after a menu state has been entered as a result of operation of the S-T-T function 28. the main program 26 goes on to call the display function 36 to display the menu options relevant to the menu state just entered and to return the identity of a user-selected menu option as "M(OPTx) where 'x' indicates an option number. The manner in which a user effects selection of a menu ODtion will be described hereinafter when describing the display function 36. For the present it is sufficient to note that the function 36 returns M(OPTx) and this is then used as the stimulus identity for a subsequent call of the S-T-T function 28 the purpose of which is to cause the state machine to respond to the menu option selected by the user. In step 75, the interruption button 14 is polled. If this button is in a depressed (activated) state indicating that an interruption has just occurred, the S-T-T function is called (stimulus "IB") to suspend the current case and start interruption timing. In step 76, the keypad 15 is polled for any keypress. If a number key or the decimal point key has been pressed, the corresponding quantity is shifted left into the measurement accumulation register 43 whereas if the backspace key has been depressed, the accumulated measure is shifted right to remove the last-entered quantity; in both cases, the S-T-T function 28 is called (stimulus "Numeric") to restart a timeout period relating to the dwell time duration in the disb. item states. If the 'Enter' key is pressed, it is assumed that the number accumulated in the register 43 is now complete and should be entered as the measure of a current disb. item. To do this, the S-T-T function is called (stimulus "Enter"). After all the polling steps 72 to 76 have been carried out, step 77 calls the display function 36 to update the display. Thereafter, the polling and display cycle is repeated. Considering next the display function 36 (Figure 9) and the displays appropriate to each state-machine state, it will be seen from Figure 8 that for each of the fourteen states A to N, there is a corresponding three-field display with the exception that for state B, there are two three-field display screens that are displayed in alternation in a manner to be described hereinafter. The displays relevant to the six menu states B,F,H,J,L and N each involve the display of a menu option pointer 100 that is incremented across the fields of the display whilst the menu button 13 remains deϋressed; UDOΠ release of the button 13, the current position of this option pointer is taken to indicate the desired menu option and the appropriate M(Optx) value is generated. In non-menu states E,G,I and K, the display includes a cursor 101 to indicate for which field, actions can be selected by pressing the menu button 13 to bring up an appropriate menu display. For the display relevant to the interruption state M, a flashing bar 102 is provided to make it clear that the current state is the interruption state. In Figure 8, the contents of the display fields relevant to each state are indicated within each field. Words within inverted commas indicate display legends shown as such, whilst other words indicate parameters that must be retrieved for display by the display function 35 and supplied to the display buffer 18 for display. Appendix II hereto records where the relevant parameter information may be found. Note that certain information may need to be assembled by searching (for example, the 'list of unknowns' in the second filed of the state C display, is a list of all temporary case IDs present in the case records, this list being created when required by a search of the case records). Note also that for the displays relevant to states E, G and M. there are defaults should certain items be unavailable; in particular, the displays for states E, G and M assume a current time item but if none exists the case total time will be displayed instead. Upon the display function 35 being called, it first initialises two variables B_Screen and Menu_Option to values T and 'M(OptO)' respectively (step 81); the first of these variables is used to track which screen of the state B display is next to be displayed, whilst the second is used to return the selected menu option, if any. In step 82, the display relevant to the current state is displayed by appropriate loading of the display buffer 18 with the information indicated in Figure 8 after retrieval from the locations indicated in Appendix II. Cursor items 100, 101 and 102 are also displayed as appropriate. If the current state is B. the first screen relevant to this state will be displayed first. If the current state is not a menu state, the display function then terminates (steps 83, 84). However, if the current state is a menu state, then steos 85 to 90 serve to circulate the menu option pointer 100 across the display fields until the menu button 13 is released ; thereupon, the menu option pointed to by the pointer 100 at the moment of button release is identified and Menu_Option is set appropriately (step 87), and its value M(Optx) is then returned (step 84). If the current state is B, steps 90 and 91 provide for alternation between display screens 1 and 2 by toggling of the value of B_Screen between T and '2'. All the functional components of the time-recording device 10 have now been described, together with their operational inter-relationships. However, a better appreciation of how the device operates at a user level can be obtained by studying the state transition diagram shown in Figure 7 together with the state displays of Figure 8. With reference to Eigure 7, upon switch on, the device will be in State A and will display 'total' time and 'unassigned' time. State B is a 'master menu' state that can be entered by depressing the menu button B. The choices open to the user at the state B menu are: No action state A is returned to; Start Unknown timing is started for a case whose proper ID is not yet known; a temporary ID ('UKxxx') is assigned; 3. ID Unknown - enables a proper case ID to be substituted for a previously assigned temporary ID; user states C and D with state C asking for the temporary ID that is to be replaced and state D serving for the input of the replacement UD (this input being by way of the code reader 11). 4. Download - enables the case records to be downloaded via an appropriate interface (the states associated with this process are not described herein as they form no part of the present invention other than providing a service to the device 10 - appropriate implementations are well known to persons skilled in the art); 5. Reset - resets the device; 6. Off - turns the device off. The main states of the device are states E,G,I and K that relate to the display of the details of the current case once the latter has been established either through the 'Stan Unknown' option of the master menu or, more usually, by the scanning in of a case ID using the reader 11. State E displays the basic case details (case ID and total case time) when no time or disb. item is current; state I and K relate to the input of disb. item details. Associated with each of the states E,G. I and K is a respective menu state F,H,J and L that can be entered by extended depression of the-menu button 13. These menu states provide option such as deleting the current item or case, or terminating the timing of the current time item or case. State M is the state that is entered when the interruption button 14 is depressed. This state displays the interruption case ID (initially a temporary one, but this may be replaced by a proper case ID) , a time item ID if one is scanned in, and the total interruption time. State N is a menu state associated with the interruption state M and gives the user the options of: 1. - 'Forget' to delete details of the interruption and return to the previously current case or the default display (state A) with the interruption time being added to the 'unassigned' time value; 2. - 'Restore' to store the interruption details as a new case and return to the previously current case or the default display; 3. - 'Make Current' to create a new case from the interruption details and make this the current case. A detailed appreciation of the operation of the device state machine can be had by studying the details of Figures 6 to 8 and Appendices I and II, the latter as well as the former, being an integral part of the present specification. Various modifications are, of course, possible to the time recording device described above and several possible modifications will now be described: Menu function - the single menu button could be replaced by several menu buttons spaced along the length of the display; thus, as in the aforementioned Microwand product, four buttons could be used, spaced along the display (which would then notionally be dividable into four segments). One or more of the menu buttons would have an associated menu - thus the first menu button could correspond to the control menu in that pressing the button brought up a control menu in the form of up to four options named along d e display in correspondence to the four menu buttons. The desired option would then be selected by pressing the appropriate button. The various menu options described above for the illustrated time recording device are, by and large, control options and would be arranged to be displayed when the first menu button (i.e., the control menu button) was pressed; note that it would be possible to reduce the State B options to four by removing the 'No Action' and 'Reset' options. The other menu buttons, as well as serving for selecting of an option from an already-displayed menu, could also be used to bring up different menus for purposes such as are described under the next two items. Case and Item Review - it would be useful and relatively easy to provide the user with the facility to review case IDs already recorded in the device for the current session (for example, from State A) and to review time and disbursement items already recorded against a current case (from States E and G, for example). This may be achieved by using one of the menu buttons referred to in the preceding paragraph, bring up a review menu, listing types of items available for review - on selection of the item type, the applicable items would be displayed in turn with the menu buttons being used to step forward/backwards through such items, to end the review and return to the previously current items, or to end the review by making current the item currently displayed as part of the review. For this arrangement, a two-line display would preferably be used, one line for menu options, the second line for reviewed items. Item Selection from Stored List - particularly with regard to time and disbursement item types where there is only a relatively limited range of different types, a further menu could be activated from a corresponding menu button enabling the user to step through a list of all possible item types and then to select one to start a time or disbursement item. This facility would preferably be provided in addition to scanning in an item code, as a way of starting a new item. Miscellaneous (non-case) Items - in addition to cases, a second basic category of entry could be provided against which time could be set down. These miscellaneous items would be items such as training, management, finance and other time consuming items not directly chargeable to clients. These miscellaneous items would generally not need to be further broken down by time items. Miscellaneous items could be started either by bar-code scanning or by item type selection as referred to in the previous paragraph. Time Modification - a user might wish to add or subtract time from: a) session time b) case time c) time item time for a variety of reasons (for example, during a break, time was left accumulating to a particular case). If session time alone is to be changed, then the only other element affected would be unassigned time which would need to be changed by the same amount as session time (this would be done automatically); with regard to time subtraction, a limit would be set preventing unassigned time being reduced below zero. If case time was to be changed, then the user would also have to - -. "> indicate whether the total session time was to be correspondingly changed or whether the amount of case time subtracted/added was also to be added/ subtracted to/ffom assigned time; in the case of any subtraction, again there would be a limit preventing either of case time or unassigned time failing below zero. Finally, if time was to be added/subtracted from a time item, the user would need to decide how this effected the overall case time and the overall session time; again, limits would need to be placed on how much time could be subtracted from any element. All the foregoing time-modification choices could be implemented through appropriate menu options, a suitable main menu being brought up by pressing a respective one of the menu buttons referred to above. The time recording device of the invention is not limited to use in office environments but can be used elsewhere, for example, in a factory to monitor how a worker or machine allocates time between tasks. Although in the described embodiment of the time recording device, the primary way to start a new case is to read in a new case code, it will be recalled that an alternative way is available by starting a case with an unknown case ID. Indeed, this way of starting a case could be made the main and possibly the only way to start a case; if this approach were to be adopted then, conveniently, the device would be provided with a special case-start button which when operated would immediately start timing against a new, unknown, case. Furthermore, the reading in of a case ID would be arranged to automatically allocate the read-in ID to the current case. Additionally, the device would preferably merge case records relating to the same case. Finally, as a complement to the case-start button, a case-stop button could be provided (as a precaution, the case-start button could be rendered inoperative until any current case had been terminated using the case-stop button, but this is not an essential requirement). APPENDIX I - ACTION FUNCTIONS LIBRARY 1. CASE FUNCTIONS C - ADDN (Case ID) Adds new case with input case ID by creating new case header 61 setting fields: input case ID 0 0 pointer value in register 39 Updates last case pointer register 39 to point to the newly created case header. Then makes this case current by setting register 46 to point to the newly created case header 61 and clearing registers 47,48. C - ADDUK Adds new case with temporary case ID ("UKxx") corresponding to value in ' xt UK register 42; this is done by creating new case header 61, sett fields: value of register 42 0 0 pointer value in register 39 Updates last case pointer register 39 to point to the newly created case header 61. Then makes this case current by setting register 46 to point to the newly created case header 61 and clearing registers 47,48. Increment Next UK register 42. C - STOREI Adds new case based on data in interruption registers 50 to 52; this is done by creating new case header 61, setting fields: value of register 50 value in register 52 0 pointer value in register 39 if value in Int. Item register 51 is non-zero, also creates a new time item 62 and sets its fields: value in register 5 value in register 52 and sets item pointer 65 of case header 61 to point to this new time item. Updates last case pointer 39 to point to the newly created case header 61. Then does I - RESET (see below) C - ADDI Does C-STOREI, and then makes newly added case current by setting register 46 to point to the newly created case header and clearing registers 47 and 48. If item pointer 65 of new case header is non-zero, the register 47 is set to point to same item as pointer 65. C - RESTORE Makes current a previously-identified existing case by setting register 46 to point to the case header of the existing case and clearing registers 47, 48. C - S(R/A) (Case ID) Searches case records 35 for any case having the same case ID in its header field 63 as an input case ID; this search is conducted by starting with the case pointed to by last case pointer register 39 and then proceeding up through the linked list of case headers 61 using the previous case pointer 66, until a match is found or the pointer 66 is null (indicating the head of the case record list has been reached) . If a case ID match is found, the existing matched case is restored using C-RESTORE; otherwise, a new case with a case ID corresponding to the input case ID, is created using C-ADDN. C-END The current case is made no longer current by clearing the three registers 46 to 48. C-DEL The current case is removed from the case records 35. To do this, the case ID 63 of the case header 63 is set to zero causing the case to be ignored in subsequent processing, The registers 46 to 48 are then cleared. C-UKID (UKxx) The proper case ID of an existing case identified by a temporary ID ("UKxx") (assigned from Next UK register 42) is substituted for the temporary ID. To do this, the case records 35 are searched for a record with its case ID 63 corresponding to a specified temporary ID, this search being conducted starting with the record pointed to by the pointer in register 39 and continuing up the linked list of case headers 61. Upon a match being found, the temporary ID held in the case ID 63 of the matched record, is replaced by an input case ID. 2. TIME ITEM FUNCTIONS T-ADD (Item ID) Adds new time item to current case pointed to by pointer in current case register 46, and identifies this item by input time item ID. To do this, a new item 62 is created with its item ID field 67 set to the input time item ID and its fields 68, 69 set to null. The item pointer field 65 of the current case is examined and, if null, it is set to point to the newly-created time item; otherwise, it is followed to the chain of one or more linked items associated with the current case header and this chain is pursued to its end where the next-item pointer 69 of the last item is set to point to the new time item. The register 47 is then set to point to the new time item. T-RESTORE Makes current a previously-identified existing time item of the current case by setting register 47 to point to the item. T-S(R/A) (Item ID) Searches the current case record for any item having the same item ID in its field 67 as an input time item ID. This search is started by following the item pointer 65 in the header 61 of the current case and then proceeding along the chain of linked items until a match is found or the end of the chain is reached. If a match is found, the time item is restored to current using T- RESTORE: otherwise, a new time item is created using T-ADD. T-END The current time item is made no longer current by clearing the register 47. T-DEL The current time item is removed from the current case by setting the item ID field 67 of the item to null so that the item is ignored in subsequent processing. The register 47 is then cleared. 3. DISB. ITEM FUNCTIONS D-ADD (Item ID) Adds new disb. item to current case pointed to by pointer in current case register 46, and identifies this item by input disb. item ID. To do this, a new item 62 is created with its item ID field 67 set to the input disb. item ID and its fields 68, 69 set to null. The item pointer field 65 of the current case is examined and, if null, it is set to point to the newly-created disb. item; otherwise, it is followed to die chain of one or more linked items associated with the current case header and this chain is pursued to its end where the next-item pointer 69 of the last item is set to point to the new disb. item. The register 48 is then set to point to the new disb. item. D-RESTORE - Makes current a previously-identified existing disb. item of the current case by setting register 48 to point to the item. D-S(R/A) (Item ID) Searches the current case record for any item having the same item ID in its field 67 as an input disb. item ID. This search is started by following the item pointer 65 in the header 61 of the current case and then proceeding along the chain of linked items until a match is found or the end of the chain is reached. If a match is found, the disb. item is restored to current using D- RESTORE; otherwise, a new disb. item is created using D-ADD. D-DEL The current disb. item is removed from the current case by setting the item ID field 67 of the item to null so that the item is ignored in subsequent processing. The register 48 is then cleared. D-TTME The timeout register 41 is loaded with a time value to be timed out, this value being predetermined (for example, 30s). M-ADD Adds input numeric measure to current disb. item of current case by using pointer in register 48 to locate the current disb. item and then inserting measure into field 68 of that item. M-DEL The numeric measure held in field 68 of the current disb. item of the current case is deleted by setting this field to zero after the relevant disb. item has been located using the pointer in register 48. 4. INTERRUPTION FUNCTIONS I-UK Assigns a temporary case ID ("UKxxx") to an interruption by taking the value in the Next UK register 42 and storing it in the Int. ID register 50. The Int. item register 51 and Int. Time register 52 are cleared and the state held in state register 30 is copied into the Susp. state register 49. The Next UK register is then incremented. I-UKID (Case ID) Replaces temporary case ID ("UKxxx") assigned to current interruption and held in register 50, with an input case ID. I-RESET - Clears the interruption registers 50 to 52 after first adding the contents of the interruption time register 52 to the Unassigned time register 45. I-TTD - Stores an input time ID in register 51. 5. CLOCK FUNCTIONS K-TTUT (Δ) - Adds the previously-determined clock increment Δ to contents of the Total Time register 44. If there is no current case (ascertained by checking if register 46 is null or contains a case pointer), the contents of the Unassigned Time register 45 is also updated by addition of the clock increment Δ. — K-CIT (Δ) - Adds the previously-determined clock increment to the contents of the Total Time field 64 of the current case pointed to by the register 46. Additionally, if there is a current time item (indicated by a non-null pointer value in register 47), then the time field 68 of this time item is also increased by the clock increment Δ. K-INTT (Δ) - Adds the previously-determined clock increment to the contents of the Int. Time register 62. 6. MISCELLANEOUS FUNCTIONS RESET - Clears (sets to zero) all registers 39 to 52. Initialises register 42 to "UK1. " Clears case record 35. Resets (zeroes) the clock 25. APPENDIX II - LOCATIONS OF DISPLAY INFORMATION State Quantity Location A TOTAL TIME Total time register -1 A UNASSIGNED TIME Unassigned time register 45 C LIST OF -UNKNOWNS Obtaind by searcning linked list of case headers 61 starting with header pointed to by pointer in register 39. D CASE ID Valid ca?e ID input whilst in state D E,G,I,K CURRENT CASE ID Case ID in field 63 of case header 61 pointed to by the pointer in register 46. E,G CURRENT TIME ID Time item ID in field 67 of item 62 pointed to by the pointer in register 47. E,G ITEM TIME Time measure in field 68 of item 62 pointed to by the pointer in register 47. LK CURRENT DISB. ITEM Disb. item ID in field 67 of item 62 pointed by the pointer in register 48. I,K ITEM MEASURE Disb. measure in field 68 of item 62 pointed to DV the pointer in register 48. M INTERRUPTION CASE Case ID in register 50. ID M INTERRUPTION TIME Item ID in register 51. ITEM M ITEM TIME Time measure in register 52.

Claims: CLAIMS 1. A time-recording device comprising: - case control means responsive to user input to provide a case record that is thereupon taken as the current case record to the exclusion of other case records previously provided by the device, timing means for timing at ieast one period relevant to the current case- recoid, - display means for enabling the current vaiue of a said at least one period being timed by the timing means to be displayed, user-controlled ID reading means for reading in case identities (IDs); and association means for associating a case ID read in by the ID reading means with a particular said case record. 2. A time-recording device according to Claim 1, wherein the said user input to which the case control means is responsive to provide a case record, is the reading in of a case ID; said association means being operative to associate a read-in case ID with the case record provided by the case control means in response to the reading in of that case, ID. 3. A time-recording device according to Claim 1. wherein said case control means includes user-operable start means for providing, independantly of said ID reading means, the said user input to which the case control means is responsive to provide a case record ; the association means being operative to associate a read-in case ID with the current case record. 4. A time-recording device according to Claim 1. wherein said case control means includes teπmnation means responsive to user input to terminate timing in respect of the said current case record without initiating timing for another case. 5. A time-recording device according to Claim 1. wherein said at least one period timed by the timing means includes the total period for which a said case record is the current case record. 6. A time-recording device according to Claim 1 , wherein the device is of stand ¬ alone, hand-held form with memory means for storing said case records, ώe device being operative to create and store a new case record for each new case ID read during a working session, and die device further comprising download means for enabling the case records stored during a working session to be downloaded to other apparatus. 7. A time-recording device according to Claim 1 further comprising: D-Item selection means operative when a case record is current to enable a user to select a disbursement item (D-Item) ID, - D-item control means responsive to selection of a D-Item ID to provide a corresponding item record associated with the case record forming the current case record, and input means for inputting a measure and storing it with said item record. B. A time-recording device according to claim 7, wherein said D-Item selection means is constituted by said ID-reading means adapted to read D-Item IDs and to distinguish them as such from case IDs. 9. A time-recording device according to Claim 1, further comprising: - T-Item selection means operative when a case record is current to enable a user to select a time item (T-Item) ID, and T-Item control means responsive to selection of a T-ltem ID to provide a corresponding item record tiiat is associated with the case record forming the current case record and constitutes for the latter the current T-Item record to the exclusion of other T-Item records associated with that case record, said timing means being arranged to time the period during which a T-Itcm record of the current case record constitates the current T-ltem record whilst the latter remains the current case record. 10. A time recording device accordmg to Claim 9. wherein said T-Item selection means is constituted by said ID-reading means adapted to read T-Item IDs and to distinguish them as such from case IDs. 11. A time-recording device according to Claim 8. wherein said ID-reading means is also capable of reading time item (T-Item) IDs ami distinguishing them as such from case and D-Item IDs, the device being further provided with: T-Itεm control means responsive to the reading in of a T-Item ID to provide a corresponding item record that is associated with the case record forming the current case record, and constitutes for the latter the current time item record to the exclusion of otiier time item records associated with that case record, said timing means being arranged to time the period during which a time item record of the current case record, constitutes the current time item of the case record whilst the latter remains the current case record. 12. A time-recording device according to Claim 1, wherein said timing means is further operative to time the duration of a usage session and to provide a measure of the total usage session time and/or of the time period of the usage session not allocated to particular cases. 13. A time-recording device according to Claim 1, further comprising interruption means responsive to user input, to suspend timing of any current case record and immediately to start timing the iπterπiption, said interruption means being responsive to subsequent user input to offer to the user, and act upon a selected one of, at least two of the following choices: termination of interruption timing with restoration of timing for any current case; the accumulated interruption time not being stored as a case record time, termination of intemiption. timing with restoration of timing for any current case, the accumulated interrupt time being stored in a corresponding case record. termination of interruption timing with the interπψtion time being stored in a corresponding case record which is made the current case record in preference to any case record the timing in respect of which was previously suspended. 14. A time-recording device, comprising: case control means responsive to user input to provide a case record that is thereupon taken as the current case record to the exclusion of other case records previously provided by the device, timing means for timing the period during which a case record is the current case-record, D-Item selection means operative when a case record is current to enable a user to select a disbursement item (D-Item) ED, - D-item control means responsive to selection of a D-Item ID to provide a corresponding D-Item record associated with die case record forming the current case record, input means for inputting a measure and storing it with said D-Item record. - T-Item selection means operative when a case record is current to enable a user to select a time item (T-Item) ED, and T-Item control means responsive to selection of a T-Item ID to provide a corresponding T-Item record that is associated with the case record forming the current case record and constitutes for the latter the current T-Item record to the exclusion of other T-Item records associated with that case record, said timing means being arranged to time the period during which a T-Item record of the current case record constitutes the current T-Item record whilst the latter remains the current case record. 15. A time-recording device comprising: case control means responsive to user input to provide a case record that is thereupon taken as the current case record to the exclusion of other case records previously provided by the device. timing means for timing at least one period relevant to the current case-record and storing this timing with the case record, user-controlled ID reading means for reading in case identities (IDs); - association means for associating a case ID read in by the ID reading means with a particular said case record, D-Item selection means operative when a case record is current to enable a user to select a disbursement item (D-Item)ID, D-Item control means responsive to selection of a D-Item ID to provide a corresponding item record associated with the case record forming the current case record, and input means for inputting a measure and storing it with said item record.

Inventors: HEPWORTH JOHN MALCOLM, SQUIBBS ROBERT FRANCIS, HEPWORTH, JOHN, MALCOLM, SQUIBBS, ROBERT, FRANCIS
Applicants: HEPWORTH JOHN MALCOLM, SQUIBBS ROBERT FRANCIS, HEPWORTH, JOHN, MALCOLM, SQUIBBS, ROBERT, FRANCIS
Application year: 1993
Main classification: G07C1
IPC codes: G06K7, G07C1