| 1 | /*----------------------------------------------------------------------------- | 
|---|
| 2 | lmts.h -- LMT Slave | 
|---|
| 3 |  | 
|---|
| 4 | Copyright (c) 1994 JANZ Computer AG | 
|---|
| 5 | All Rights Reserved | 
|---|
| 6 |  | 
|---|
| 7 | Created 95/02/02 by Soenke Hansen | 
|---|
| 8 | Version 1.5 of 96/04/18 | 
|---|
| 9 |  | 
|---|
| 10 | Various definitions: LMT Address type, LMT command specifiers, | 
|---|
| 11 | macros for data indicated to the LMT User. | 
|---|
| 12 | Prototypes of functions defined in lmts.c. | 
|---|
| 13 |  | 
|---|
| 14 |  | 
|---|
| 15 | -----------------------------------------------------------------------------*/ | 
|---|
| 16 |  | 
|---|
| 17 |  | 
|---|
| 18 | #ifndef lmts_DEFINED | 
|---|
| 19 | #define lmts_DEFINED | 
|---|
| 20 |  | 
|---|
| 21 | #ifdef __cplusplus | 
|---|
| 22 | extern "C" { | 
|---|
| 23 | #endif | 
|---|
| 24 |  | 
|---|
| 25 | #include "defs.h" | 
|---|
| 26 | #include "msg.h" | 
|---|
| 27 |  | 
|---|
| 28 | /* There is one CAL Object associated with the LMT Slave */ | 
|---|
| 29 | extern struct calo *LmtSlave;   /* receives COBs from LMT Master */ | 
|---|
| 30 |  | 
|---|
| 31 | /* LMT Address type */ | 
|---|
| 32 | struct lmt_addr { | 
|---|
| 33 | BYTE_t  manuf[8];       /* manufacturer name */ | 
|---|
| 34 | BYTE_t  prod[8];        /* product name */ | 
|---|
| 35 | BYTE_t  serno[8];       /* serial number */ | 
|---|
| 36 | }; | 
|---|
| 37 | #if TYPEDEFS == 1 | 
|---|
| 38 | typedef struct lmt_addr LmtAddr; | 
|---|
| 39 | #else | 
|---|
| 40 | #define LmtAddr struct lmt_addr | 
|---|
| 41 | #endif | 
|---|
| 42 |  | 
|---|
| 43 | /* Parameters to user indications */ | 
|---|
| 44 | #define lmts_mode       u.m1.w[0]       /* LMT Mode */ | 
|---|
| 45 | #define lmts_btr        u.m1.w[0]       /* Bit Timing Parameter */ | 
|---|
| 46 |  | 
|---|
| 47 | /* Command specifiers in LMT Protocol */ | 
|---|
| 48 | #define LMT_CS_SWITCH_SEL_MANUF   1     /* Switch Mode Select: Manuf. Name */ | 
|---|
| 49 | #define LMT_CS_SWITCH_SEL_PROD    2     /* Switch Mode Select: Product Name */ | 
|---|
| 50 | #define LMT_CS_SWITCH_SEL_SERNO   3     /* Switch Mode Select: Serial # */ | 
|---|
| 51 | #define LMT_CS_SWITCH_GLOBAL      4     /* Switch Mode Global */ | 
|---|
| 52 | #define LMT_CS_CONF_MODID        17     /* Configure Module ID */ | 
|---|
| 53 | #define LMT_CS_CONF_MODNAME      18     /* Configure Module Name */ | 
|---|
| 54 | #define LMT_CS_CONF_BITTIME      19     /* Configure Bit Timing */ | 
|---|
| 55 | #define LMT_CS_ACTV_BITTIME      21     /* Activate Bit Timing */ | 
|---|
| 56 | #define LMT_CS_STORE_CONFIG      23     /* Store Configuration */ | 
|---|
| 57 | #define LMT_CS_INQUIRE_MANUF     36     /* Inquire Manufacturer Name */ | 
|---|
| 58 | #define LMT_CS_INQUIRE_PROD      37     /* Inquire Product Name */ | 
|---|
| 59 | #define LMT_CS_INQUIRE_SERNO     38     /* Inquire Serial Number */ | 
|---|
| 60 |  | 
|---|
| 61 | /* Nil command specifier */ | 
|---|
| 62 | #define LMT_CS_NIL                0     /* not used by protocols */ | 
|---|
| 63 |  | 
|---|
| 64 | /* Allocate and initialize LMT Slave */ | 
|---|
| 65 | extern void InitLmtS( | 
|---|
| 66 | WORD_t  ,       /* configured bit timing parameters */ | 
|---|
| 67 | void    (*)()   /* user handler indication/confirmation */ | 
|---|
| 68 | ); | 
|---|
| 69 |  | 
|---|
| 70 | /* Deallocate LMT Slave */ | 
|---|
| 71 | extern void DeleteLmtS(void); | 
|---|
| 72 |  | 
|---|
| 73 | /* Create LMT Address */ | 
|---|
| 74 | extern void CreateLmtAddress(LmtAddr *); | 
|---|
| 75 |  | 
|---|
| 76 | #ifdef __cplusplus | 
|---|
| 77 | } | 
|---|
| 78 | #endif | 
|---|
| 79 |  | 
|---|
| 80 | #endif /* !lmts_DEFINED */ | 
|---|