BASEstar Classic Guide to Writing Device Access Software

*HyperReader

CONTENTS

  Title Page

  Copyright Page

  Preface

  Part I    Guide

  1      Introduction to Device Access Software
    1.1 Device Access Software
      1.1.1      Protocol Emulator
      1.1.2      Network Interface
      1.1.3      Defining a Protocol Emulator
      1.1.4      Defining a Network Interface
    1.2 Device Server
      1.2.1      Control Flow for a Device Request
      1.2.2      Device Timeouts
    1.3 BASEstar Device Connection Management Control Database

  2      Protocol Emulator and Network Interface Data Structures
    2.1 Call Packets
      2.1.1      Protocol Emulator Call Packets
      2.1.2      Network Interface Call Packets
      2.1.3      Input/Output Status Block Definition
    2.2 Control Blocks
      2.2.1      Network Interface Control Blocks
        2.2.1.1      Object Block
        2.2.1.2      Line Block
        2.2.1.3      Connect Block
        2.2.1.4      I/O Block
      2.2.2      Protocol Emulator Control Blocks
        2.2.2.1      Access Block
        2.2.2.2      Request Block
        2.2.2.3      Listen Block
        2.2.2.4      Point Block
    2.3 Examples of Device Access Requests

  3      Writing Device Access Software
    3.1 Initializing the DAS
    3.2 Transitioning a Device from Disabled State to Reachable State
      3.2.1      Transitioning from Disabled to Enabled
      3.2.2      Transitioning from Enabled to Connected
      3.2.3      Transitioning from Connected to Reachable
    3.3 Processing a Device Request
      3.3.1      Specifying Device Request Action
      3.3.2      Soliciting Data from a Device
      3.3.3      ILAN$$xxx_PE_COMP_ADDR
      3.3.4      ILAN$$yyy_NI_READ, ILAN$$yyy_NI_WRITE, and ILAN$$yyy_NI_SPECIFIC
      3.3.5      ILAN$$xxx_PE_CANCEL_REQ
    3.4 Accepting Unsolicited Data from a Device
      3.4.1      Transitioning the Device State
      3.4.2      ILAN$$xxx_PE_COMP_UNSOL_ID
      3.4.3      ILAN$$xxx_PE_PNT_UNSOL_REQ
      3.4.4      ILAN$$xxx_PE_REQ_LISTEN
    3.5 Canceling Unsolicited Communications
      3.5.1      ILAN$$xxx_PE_CNL_UNSOL_PNT
      3.5.2      ILAN$$xxx_PE_CANCEL_UNSOL
    3.6 Canceling Outstanding Device Requests
    3.7 Terminating Communications with the Device
      3.7.1      Transitioning a Device from Reachable to Connected
      3.7.2      Transitioning a Device from Connected to Disabled

  4      Support for Writing Your DAS
    4.1 DAS Support Routines
      4.1.1      Device Response Routines
      4.1.2      OpenVMS File Management Routines
      4.1.3      Terminal Port Characteristics Routine
      4.1.4      Memory Management Routines
      4.1.5      Information and Error Reporting Routines
    4.2 Handling Errors
    4.3 Support for Programming Languages

  5      How a DAS Handles Data
    5.1 Data Types
      5.1.1      Array Support
      5.1.2      Bit Support
    5.2 Structured Data
      5.2.1      Format Definition Block
      5.2.2      Format Component Block
    5.3 Data Conversions

  6      Providing Support to Perform a Simple Compare
    6.1 Writing the Simple Compare Routine
    6.2 Compiling and Linking the Simple Compare Routine
    6.3 Testing the Simple Compare Routine
    6.4 Messages Returned by the Simple Compare Routine

  7      Compiling, Linking, and Debugging PEs and NIs
    7.1 Compiling the PE Source Files into Object Modules
    7.2 Compiling the NI Source Files into Object Modules
    7.3 Linking the PE Object Modules into the Shareable Image
    7.4 Linking the NI Object Modules into the Shareable Image
    7.5 Adding a Device to the BASEstar System
    7.6 Debugging Device Access Software
      7.6.1      Device Server Recovery During Debugging
      7.6.2      Tracing Block Allocation
    7.7 Creating an Installation Procedure for Your DAS

  8      Device Access Software Documentation
    8.1 Providing DAS Documentation
    8.2 Providing DAS Online Help
    8.3 Documentation for the RS-232 DAS

  Part II    Reference Information

  9      Device Access Software Routines

  ILAN$$yyy_NI_ABORT

  ILAN$$yyy_NI_CONNECT

  ILAN$$yyy_NI_INIT

  ILAN$$yyy_NI_READ

  ILAN$$yyy_NI_SPECIFIC

  ILAN$$yyy_NI_WRITE

  ILAN$$xxx_PE_ABORT

  ILAN$$xxx_PE_ACCESS

  ILAN$$xxx_PE_CANCEL_REQ

  ILAN$$xxx_PE_CANCEL_UNSOL

  ILAN$$xxx_PE_CHECK_ADDR

  ILAN$$xxx_PE_CHECK_SCATTER

  ILAN$$xxx_PE_CNL_UNSOL_PNT

  ILAN$$xxx_PE_COMP_ADDR

  ILAN$$xxx_PE_COMP_UNSOL_ID

  ILAN$$xxx_PE_LOAD_POINT

  ILAN$$xxx_PE_PNT_UNSOL_REQ

  ILAN$$xxx_PE_REQ_LISTEN

  ILAN$$xxx_PE_REQUEST

  ILAN$$xxx_SCMP

  10     Support Routines

  ILAN$$SPT_ADD_DIRECTORY

  ILAN$$SPT_ADD_STATUS

  ILAN$$SPT_ALLOCATE_BLOCK

  ILAN$$SPT_ALLOC_DISCONN_AST

  ILAN$$SPT_CLOSE_FILE

  ILAN$$SPT_DEALLOCATE_BLOCK

  ILAN$$SPT_FIND_BLOCK_ADDR

  ILAN$$SPT_FIND_CHILD

  ILAN$$SPT_FIND_DISCONN_BLOCK

  ILAN$$SPT_FIND_FIRST_CHILD

  ILAN$$SPT_FREE_AST

  ILAN$$SPT_FREE_DISCONN_BLOCK

  ILAN$$SPT_GET_DISCONN_BLOCK

  ILAN$$SPT_GET_FILE

  ILAN$$SPT_GET_LINE_PARAM

  ILAN$$SPT_GET_PORT_INFO

  ILAN$$SPT_LOG_MSG

  ILAN$$SPT_LOG_STS_MSG

  ILAN$$SPT_OPEN_FILE

  ILAN$$SPT_PUT_FILE

  ILAN$$SPT_PUT_MSG

  ILAN$$SPT_PUT_STS_MSG

  11     Return Codes and Error Messages

  12     Device Access Software Function Codes
    12.1 Function Codes
    12.2 Request and Response Buffer Formats
      12.2.1     ILAN$K_ALLOCATE
      12.2.2     ILAN$K_DEALLOCATE
      12.2.3     ILAN$K_DELETE
      12.2.4     ILAN$K_DIRECTORY
      12.2.5     ILAN$K_DOWNLOAD
      12.2.6     ILAN$K_LOOP_DEVICE, ILAN$K_LOOP_NI, and ILAN$K_LOOP_PE
      12.2.7     ILAN$K_READ
      12.2.8     ILAN$K_SCATTER_READ
      12.2.9     ILAN$K_SELECT
      12.2.10    ILAN$K_START
      12.2.11    ILAN$K_STATUS
      12.2.12    ILAN$K_STOP
      12.2.13    ILAN$K_UPLOAD
      12.2.14    ILAN$K_WRITE