Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/usb/serial/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 6 kB image not shown  

Quelle  keyspan_usa90msg.h   Sprache: C

 
/* SPDX-License-Identifier: BSD-3-Clause */
/*
usa90msg.h

Copyright (c) 1998-2003 InnoSys Incorporated.  All Rights Reserved
This file is available under a BSD-style copyright

Keyspan USB Async Message Formats for the USA19HS

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

1. Redistributions of source code must retain this licence text
    without modification, this list of conditions, and the following
    disclaimer.  The following copyright notice must appear immediately at
    the beginning of all source files:

         Copyright (c) 1998-2003 InnoSys Incorporated.  All Rights Reserved

         This file is available under a BSD-style copyright

2. The name of InnoSys Incorporated may not be used to endorse or promote
    products derived from this software without specific prior written
    permission.

THIS SOFTWARE IS PROVIDED BY INNOSYS CORP. ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.    

Revisions:

2003feb14 add setTxMode/txMode  and cancelRxXoff to portControl
2003mar21 change name of PARITY_0/1 to add MARK/SPACE
*/


#ifndef __USA90MSG__
#define __USA90MSG__

struct keyspan_usa90_portControlMessage
{
 /*
there are three types of "commands" sent in the control message:

1. configuration changes which must be requested by setting
the corresponding "set" flag (and should only be requested
when necessary, to reduce overhead on the device):
*/


 u8 setClocking, // host requests baud rate be set
  baudLo,   // host does baud divisor calculation
  baudHi,   // host does baud divisor calculation 
  
  setLcr,   // host requests lcr be set
  lcr,   // use PARITY, STOPBITS, DATABITS below
  
  setRxMode,  // set receive mode
  rxMode,   // RXMODE_DMA or RXMODE_BYHAND

  setTxMode,  // set transmit mode
  txMode,   // TXMODE_DMA or TXMODE_BYHAND

  setTxFlowControl, // host requests tx flow control be set
  txFlowControl , // use TX_FLOW... bits below
  setRxFlowControl, // host requests rx flow control be set
  rxFlowControl, // use RX_FLOW... bits below
  sendXoff,  // host requests XOFF transmitted immediately
  sendXon,  // host requests XON char transmitted
  xonChar,  // specified in current character format
  xoffChar,  // specified in current character format

  sendChar,  // host requests char transmitted immediately
  txChar,   // character to send

  setRts,   // host requests RTS output be set
  rts,   // 1=on, 0=off
  setDtr,   // host requests DTR output be set
  dtr;   // 1=on, 0=off

 
 /*
2. configuration data which is simply used as is 
and must be specified correctly in every host message.
*/


 u8 rxForwardingLength,  // forward when this number of chars available
  rxForwardingTimeout, // (1-31 in ms)
  txAckSetting;    // 0=don't ack, 1=normal, 2-255 TBD...
 /*
3. Firmware states which cause actions if they change
and must be specified correctly in every host message.
*/


 u8 portEnabled, // 0=disabled, 1=enabled
  txFlush,  // 0=normal, 1=toss outbound data
  txBreak,  // 0=break off, 1=break on
  loopbackMode; // 0=no loopback, 1=loopback enabled

 /*
4. commands which are flags only; these are processed in order
(so that, e.g., if rxFlush and rxForward flags are set, the
port will have no data to forward); any non-zero value 
is respected
*/


 u8 rxFlush,  // toss inbound data
  rxForward,  // forward all inbound data, NOW (as if fwdLen==1)
  cancelRxXoff, // cancel any receive XOFF state (_txXoff)
  returnStatus; // return current status NOW
};

// defines for bits in lcr
#define  USA_DATABITS_5  0x00
#define  USA_DATABITS_6  0x01
#define  USA_DATABITS_7  0x02
#define  USA_DATABITS_8  0x03
#define  STOPBITS_5678_1  0x00 // 1 stop bit for all byte sizes
#define  STOPBITS_5_1p5  0x04 // 1.5 stop bits for 5-bit byte
#define  STOPBITS_678_2  0x04 // 2 stop bits for 6-8 bit byte
#define  USA_PARITY_NONE  0x00
#define  USA_PARITY_ODD  0x08
#define  USA_PARITY_EVEN  0x18
#define  PARITY_MARK_1    0x28    // force parity MARK
#define  PARITY_SPACE_0   0x38 // force parity SPACE

#define  TXFLOW_CTS   0x04 
#define  TXFLOW_DSR   0x08
#define  TXFLOW_XOFF   0x01 
#define  TXFLOW_XOFF_ANY  0x02 
#define  TXFLOW_XOFF_BITS (TXFLOW_XOFF | TXFLOW_XOFF_ANY)

#define  RXFLOW_XOFF   0x10 
#define  RXFLOW_RTS   0x20 
#define  RXFLOW_DTR   0x40
#define  RXFLOW_DSR_SENSITIVITY 0x80

#define  RXMODE_BYHAND  0x00 
#define  RXMODE_DMA   0x02 

#define  TXMODE_BYHAND  0x00 
#define  TXMODE_DMA   0x02 


// all things called "StatusMessage" are sent on the status endpoint

struct keyspan_usa90_portStatusMessage 
{
 u8 msr,   // reports the actual MSR register
  cts,   // reports CTS pin
  dcd,   // reports DCD pin
  dsr,   // reports DSR pin
  ri,    // reports RI pin
  _txXoff,  // port is in XOFF state (we received XOFF)
  rxBreak,  // reports break state
  rxOverrun,  // count of overrun errors (since last reported)
  rxParity,  // count of parity errors (since last reported)
  rxFrame,  // count of frame errors (since last reported)
  portState,  // PORTSTATE_xxx bits (useful for debugging)
  messageAck,  // message acknowledgement
  charAck,  // character acknowledgement
  controlResponse; // (value = returnStatus) a control message has been processed 
};

// bits in RX data message when STAT byte is included

#define RXERROR_OVERRUN  0x02
#define RXERROR_PARITY  0x04
#define RXERROR_FRAMING  0x08
#define RXERROR_BREAK  0x10

#define PORTSTATE_ENABLED 0x80
#define PORTSTATE_TXFLUSH 0x01
#define PORTSTATE_TXBREAK 0x02
#define PORTSTATE_LOOPBACK  0x04

// MSR bits

#define USA_MSR_dCTS     0x01  // CTS has changed since last report
#define USA_MSR_dDSR     0x02
#define USA_MSR_dRI   0x04
#define USA_MSR_dDCD     0x08

#define USA_MSR_CTS   0x10    // current state of CTS
#define USA_MSR_DSR   0x20
#define USA_USA_MSR_RI   0x40
#define MSR_DCD    0x80

// ie: the maximum length of an endpoint buffer
#define  MAX_DATA_LEN   64

#endif

Messung V0.5
C=94 H=94 G=93

¤ Dauer der Verarbeitung: 0.21 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.