;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Loader file
;;;
;;; This file contains the initializations necessary to
;;; start the phone dialing model.
;;;
;;;  File: loader.lisp
;;;  Author: Andrew R. Freed
;;;  Creation date: 2/July/02
;;;  Last modified: 25/March/02
;;;
;;; This file runs under ACT-R/PM 5.0, RPM v2.17b, Segman v3.1, and ACL 5.0.1
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Table of contents
;;;
;;; i   How to run
;;; ii  Initializations
;;; iii Global variables
;;; iv  Loads
;;; I   Running a demo of the phone-dialer
;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; i. How to run
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#|
To load and run this model on eyetracker II PC in ACS Lab:

* Start up GNU emacs
* M-x IDE   will start up the Allegro + IDE system
* Minimize (but do not kill) the lisp windows you don't need.
  typically, this is just the console window.

* from the project window, load the this file
  using the load command on the allegro menu.  do not do this by
  hand.  c:/research/systems/testing/freed_model/loader.lisp
  you may have to change the position in the file hierarchy, and you will
  have to change the file viewer file type from .fasl to *.* or *.lisp.
* to demo the phone-dialer, type to the lisp debugger window, (phone_model)
* to run the model several times, type to the debugger window,
   (collect-data n) where n is the number of times to run
* if you wish to dial a different phone, use "reset" on the control panel
    before starting the model again.
|#

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ii. Initializations
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;Initializes ACT-R/PM
(clear-all)
(pm-reset)

;;; sets whether a person (nil) or the model (t) will be doing the task.
(setf *actr-enabled-p* t)

(setf mouse-fitts-coeff 0.100)  ;;standard Fitts' coefficient

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; iii. Global variables
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; sgp is the ACT-R command to Set Global Parameters
;; The ACT-R manual describes all of the available parameters.
;; er is the enable randomness flag. If it is t then
;; when multiple productions can fire a random one is
;; chosen and when it is nil a deterministic, but unspecified
;; method is used.  Note that when the subsymbolic components
;; are enabled this is much less of an issue, because then there
;; are other means of determining which production to fire.
;; v is the verbose flag and specifies whether or not the
;; trace output is displayed.  The model will run much faster
;; when the trace output is off (nil), but then you can't see
;; what is happening along the way.

(sgp :er t :v nil)
(sgp :egn 1.0)

;; pm-set-params is the command to set the Perceptual-Motor
;; parameters.  Details of all the available PM parameters are
;; available in the ACT-R/PM manual.
;; real-time controls whether the model operates in simulated
;; time (nil) or real time (t).  If it is in simulated time it will run
;; as fast as the machine will allow, but if it is in real time
;; then it will wait (if necessary) for the appropriate amount of
;; time to pass for each action performed.

(pm-set-params :real-time nil)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; iv. Loads
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(load "c:/Research/systems/testing/freed-model/phone_model.lisp")
(load "c:/Research/systems/testing/freed-model/experiment.lisp")
(load "c:/Research/systems/testing/freed-model/segman-link.lisp")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; I. Running a demo of the phone-dialer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun phone_model()
  (load "c:/Research/systems/testing/freed-model/experiment.lisp")
  (load "c:/Research/systems/testing/freed-model/segman-link.lisp")
  (load "c:/Research/systems/testing/freed-model/phone_model.lisp")
  (collect-data 1 "Me1")
)
