package Ada_Store.PoST.Device.Scanner

with Ada_Store.PoST.Input_Queue;

package Ada_Store.PoST.Device.Scanner is

   type Instance 	is new Ada_Store.PoST.Device.Instance with private;

   type Laser_Status 	is ( On, Off, Unknown );
   
   function  Current_Status
     (Scanner : in Instance)
      return Laser_Status;
    
   procedure Open
     (Scanner : in out Instance);

   procedure Flush
     (Scanner	 : in out Instance;
      Flush_Mode : in     Device_Mode);

   procedure Accept_Input
     (Scanner : in out Instance;
      Input   : in     Input_Queue.Message_Ptr);
	
private
   type Instance 	is new Ada_Store.PoST.Device.Instance with null record;

end Ada_Store.PoST.Device.Scanner;

package body Ada_Store.PoST.Device.Scanner is

   type Label_Type	is ( EAN_8, EAN_13, UPC_E, UPC_A, Unknown );
   
   function  Current_Status
     (Scanner : in Instance)
      return Laser_Status is
   begin
      return Unknown;
   end Current_Status;
   
   procedure Open
     (Scanner : in out Instance) is
   begin
      null;
   end Open;

   procedure Flush
     (Scanner	 : in out Instance;
      Flush_Mode : in     Device_Mode) is
   begin
      null;
   end Flush;

   procedure Accept_Input
     (Scanner : in out Instance;
      Input   : in     Input_Queue.Message_Ptr) is
   begin
      -- validate scan code

      -- add message to input queue.
      Input.Action := Input_Queue.Item_Sale;

      Input_Queue.Append(Input);
   end Accept_Input;
	
end Ada_Store.PoST.Device.Scanner;

Contents Page

Copyright © 1996 Simon Johnston &
Addison Wesley Longman