Rudiments
serialportprofile.h
1 // Copyright (c) 1999-2018 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_SERIALPORTPROFILE_H
5 #define RUDIMENTS_SERIALPORTPROFILE_H
6 
7 #include <rudiments/private/serialportprofileincludes.h>
8 
9 // cfmakeraw, cfsetspeed???
10 // wraps struct termios
11 
21 class RUDIMENTS_DLLSPEC serialportprofile {
22  public:
23 
24  enum inputmode_t {
25  cannonical=0,
26  raw
27  };
28 
29  enum flowcontrol_t {
30  fc_none=0,
31  fc_software,
32  fc_hardware
33  };
34 
35  enum baudrate_t {
36  baud_0=0,
37  baud_50,
38  baud_75,
39  baud_110,
40  baud_134,
41  baud_150,
42  baud_200,
43  baud_300,
44  baud_600,
45  baud_1200,
46  baud_1800,
47  baud_2400,
48  baud_4800,
49  baud_9600,
50  baud_19200,
51  exta,
52  baud_38400,
53  extb,
54  baud_57600,
55  baud_76800,
56  baud_115200,
57  baud_230400,
58  baud_460800,
59  baud_500000,
60  baud_576000,
61  baud_921600,
62  baud_1000000,
63  baud_1152000,
64  baud_1500000,
65  baud_2000000,
66  baud_2500000,
67  baud_3000000,
68  baud_3500000,
69  baud_4000000
70  };
71 
72  enum charsize_t {
73  cs_5=0,
74  cs_6,
75  cs_7,
76  cs_8
77  };
78 
79  enum newlinedelay_t {
80  nl_none=0,
81  nl_100
82  };
83 
84  enum carriagereturndelay_t {
85  cr_none=0,
86  cr_depends,
87  cr_100,
88  cr_150
89  };
90 
91  enum tabdelay_t {
92  td_0=0,
93  td_1,
94  td_2,
95  td_xtabs
96  };
97 
98  enum backspacedelay_t {
99  bs_none=0,
100  bs_50
101  };
102 
103  enum verticaltabdelay_t {
104  vt_none=0,
105  vt_2
106  };
107 
108  enum formfeeddelay_t {
109  ff_none=0,
110  ff_2
111  };
112 
115 
118 
121 
124 
127 
130 
133 
137 
141  void setControlCharacters(const unsigned char *c_cc);
142 
149  void evalOptionsString(const char *string);
150 
152  void inputMode(inputmode_t inputmode);
153 
155  inputmode_t inputMode();
156 
158  void flowControl(flowcontrol_t flowcontrol);
159 
161  flowcontrol_t flowControl();
162 
164  void baud(const char *baudrate);
165 
167  void baud(baudrate_t baudrate);
168 
170  bool inputBaud(const char *baudrate);
171 
173  bool inputBaud(baudrate_t baudrate);
174 
176  bool outputBaud(const char *baudrate);
177 
179  bool outputBaud(baudrate_t baudrate);
180 
183  void characterSize(charsize_t size);
184 
189  void twoStopBits(bool truefalse);
190 
196  void receiverOn(bool truefalse);
197 
201  void parityCheck(bool truefalse);
202 
207  void oddParity(bool truefalse);
208 
213  void hangupOnClose(bool truefalse);
214 
223  void ignoreModemControlLines(bool truefalse);
224 
228  void blockJobControlOutput(bool truefalse);
229 
234  void hardwareFlowControl(bool truefalse);
235 
237  baudrate_t baud();
238 
240  baudrate_t inputBaud();
241 
243  baudrate_t outputBaud();
244 
246  charsize_t characterSize();
247 
249  bool twoStopBits();
250 
252  bool receiverOn();
253 
255  bool parityCheck();
256 
258  bool oddParity();
259 
264 
268 
272 
276 
281  void generateSignals(bool truefalse);
282 
289  void canonicalInput(bool truefalse);
290 
301  void escapedUpperCase(bool truefalse);
302 
305  void echoInput(bool truefalse);
306 
312  void eraseCharactersOn(bool truefalse);
313 
317  void killCharacterOn(bool truefalse);
318 
322  void echoNewLine(bool truefalse);
323 
329  void extendedFunctions(bool truefalse);
330 
335  void echoControlCharacters(bool truefalse);
336 
340  void echoErasedCharacter(bool truefalse);
341 
348  void emulateKill(bool truefalse);
349 
353  void noFlushAfterInterruptOrQuit(bool truefalse);
354 
358  void retypePendingCharacters(bool truefalse);
359 
364  void sendSignalForBackgroundOutput(bool truefalse);
365 
370 
375 
382 
384  bool echoInput();
385 
391 
395 
398  bool echoNewLine();
399 
405 
410 
414 
418  bool emulateKill();
419 
424 
428 
433 
436  void inputParityCheck(bool truefalse);
437 
442  void ignoreParityErrors(bool truefalse);
443 
449  void markParityErrors(bool truefalse);
450 
453  void stripParityBits(bool truefalse);
454 
457  void softwareFlowControlOnOutput(bool truefalse);
458 
461  void softwareFlowControlOnInput(bool truefalse);
462 
465  void anyCharacterStartsFlow(bool truefalse);
466 
469  void ignoreBreak(bool truefalse);
470 
478  void sendSignalOnBreak(bool truefalse);
479 
482  void mapNewLineToCarriageReturnOnInput(bool truefalse);
483 
486  void discardEndOfTransmission(bool truefalse);
487 
490  void ignoreCarriageReturn(bool truefalse);
491 
494  void mapCarriageReturnToNewLineOnInput(bool truefalse);
495 
498  void lowerCase(bool truefalse);
499 
502  void bellIfLineTooLong(bool truefalse);
503 
506 
509 
513 
517 
521 
525 
528 
530  bool ignoreBreak();
531 
537 
541 
544 
547 
551 
554  bool lowerCase();
555 
559 
560 
563  void postProcessOutput(bool truefalse);
564 
567  void outputUpperCase(bool truefalse);
568 
572  bool truefalse);
573 
577 
581 
585 
589  void useFillCharactersForDelay(bool truefalse);
590 
594  void useDelForFill(bool truefalse);
595 
598  void expandTabToSpaces(bool truefalse);
599 
602  void delayAfterNewLine(newlinedelay_t nldelay);
603 
606  void delayAfterCarriageReturn(carriagereturndelay_t crdelay);
607 
610  void delayAfterTab(tabdelay_t tabdelay);
611 
614  void delayAfterBackSpace(backspacedelay_t bsdelay);
615 
618  void delayAfterVerticalTab(verticaltabdelay_t vtdelay);
619 
622  void delayAfterFormFeed(formfeeddelay_t ffdelay);
623 
627 
631 
635 
639 
643 
647 
651 
655 
658 
661  newlinedelay_t delayAfterNewLine();
662 
665  carriagereturndelay_t delayAfterCarriageReturn();
666 
668  tabdelay_t delayAfterTab();
669 
672  backspacedelay_t delayAfterBackSpace();
673 
676  verticaltabdelay_t delayAfterVerticalTab();
677 
680  formfeeddelay_t delayAfterFormFeed();
681 
686  void interruptCharacter(unsigned char character);
687 
692  void quitCharacter(unsigned char character);
693 
697  void eraseCharacter(unsigned char character);
698 
702  void killCharacter(unsigned char character);
703 
709  void endOfFileCharacter(unsigned char character);
710 
714  void endOfLineCharacter(unsigned char character);
715 
719  void secondEndOfLineCharacter(unsigned char character);
720 
723  void switchCharacer(unsigned char character);
724 
727  void startCharacter(unsigned char character);
728 
731  void stopCharacter(unsigned char character);
732 
737  void suspendCharacter(unsigned char character);
738 
743  void delayedSuspendCharacter(unsigned char character);
744 
749  void literalNextCharcter(unsigned char character);
750 
754  void wordEraseCharcter(unsigned char character);
755 
760  void reprintCharacter(unsigned char character);
761 
767 
770  void statusRequestCharacter(unsigned char character);
771 
776  void readThreshold(unsigned char count);
777 
782  void readTimeout(unsigned char deciseconds);
783 
784 
788  unsigned char interruptCharacter();
789 
793  unsigned char quitCharacter();
794 
797  unsigned char eraseCharacter();
798 
801  unsigned char killCharacter();
802 
807  unsigned char endOfFileCharacter();
808 
811  unsigned char endOfLineCharacter();
812 
815  unsigned char secondEndOfLineCharacter();
816 
818  unsigned char switchCharacer();
819 
821  unsigned char startCharacter();
822 
824  unsigned char stopCharacter();
825 
829  unsigned char suspendCharacter();
830 
834  unsigned char delayedSuspendCharacter();
835 
839  unsigned char literalNextCharcter();
840 
843  unsigned char wordEraseCharcter();
844 
845 
849  unsigned char reprintCharacter();
850 
855 
857  unsigned char statusRequestCharacter();
858 
862  unsigned char readThreshold();
863 
867  unsigned char readTimeout();
868 
869  #include <rudiments/private/serialportprofile.h>
870 };
871 
872 #endif
Definition: character.h:11
Definition: serialportprofile.h:21
bool ignoreParityErrors()
bool mapNewLineToCarriageReturnNewLineOnOutput()
carriagereturndelay_t delayAfterCarriageReturn()
bool echoControlCharacters()
void inputMode(inputmode_t inputmode)
bool outputBaud(const char *baudrate)
void secondEndOfLineCharacter(unsigned char character)
void killCharacterOn(bool truefalse)
bool noFlushAfterInterruptOrQuit()
void defaultControlCharacters()
bool inputBaud(baudrate_t baudrate)
bool sendSignalForBackgroundOutput()
void sendSignalForBackgroundOutput(bool truefalse)
void flowControl(flowcontrol_t flowcontrol)
void expandTabToSpaces(bool truefalse)
void bellIfLineTooLong(bool truefalse)
void baud(baudrate_t baudrate)
bool hardwareFlowControl()
flowcontrol_t flowControl()
void endOfLineCharacter(unsigned char character)
void ignoreCarriageReturn(bool truefalse)
void mapCarriageReturnToNewLineOnInput(bool truefalse)
bool eraseCharactersOn()
void interruptCharacter(unsigned char character)
void dontOutputCarriageReturnAtColumnZero(bool truefalse)
unsigned char switchCharacer()
unsigned char readThreshold()
void hardwareFlowControl(bool truefalse)
bool discardEndOfTransmission()
void defaultLocalOptions()
void delayedSuspendCharacter(unsigned char character)
void delayAfterFormFeed(formfeeddelay_t ffdelay)
unsigned char suspendCharacter()
unsigned char interruptCharacter()
void mapCarriageReturnToNewLineOnOutput(bool truefalse)
bool inputBaud(const char *baudrate)
bool mapCarriageReturnToNewLineOnOutput()
bool bellIfLineTooLong()
void outputUpperCase(bool truefalse)
void suspendCharacter(unsigned char character)
newlinedelay_t delayAfterNewLine()
void characterSize(charsize_t size)
unsigned char startCharacter()
void endOfFileCharacter(unsigned char character)
void twoStopBits(bool truefalse)
void softwareFlowControlOnOutput(bool truefalse)
charsize_t characterSize()
bool softwareFlowControlOnOutput()
void delayAfterCarriageReturn(carriagereturndelay_t crdelay)
void literalNextCharcter(unsigned char character)
baudrate_t inputBaud()
void delayAfterTab(tabdelay_t tabdelay)
unsigned char reprintCharacter()
baudrate_t outputBaud()
void ignoreModemControlLines(bool truefalse)
void receiverOn(bool truefalse)
unsigned char eraseCharacter()
void defaultInputOptions()
void eraseCharacter(unsigned char character)
void baud(const char *baudrate)
unsigned char secondEndOfLineCharacter()
void inputParityCheck(bool truefalse)
void reprintCharacter(unsigned char character)
bool postProcessOutput()
void stripParityBits(bool truefalse)
void discardPendingOutputCharacter(unsigned char character)
void evalOptionsString(const char *string)
void statusRequestCharacter(unsigned char character)
void echoInput(bool truefalse)
void mapNewLineToCarriageReturnNewLineOnOutput(bool truefalse)
bool ignoreModemControlLines()
void echoErasedCharacter(bool truefalse)
void defaultControlOptions()
unsigned char stopCharacter()
bool mapNewLineToCarriageReturnOnInput()
unsigned char endOfFileCharacter()
void softwareFlowControlOnInput(bool truefalse)
void ignoreParityErrors(bool truefalse)
void extendedFunctions(bool truefalse)
unsigned char killCharacter()
unsigned char wordEraseCharcter()
void retypePendingCharacters(bool truefalse)
void useDelForFill(bool truefalse)
void delayAfterNewLine(newlinedelay_t nldelay)
void stopCharacter(unsigned char character)
bool mapCarriageReturnToNewLineOnInput()
unsigned char quitCharacter()
void eraseCharactersOn(bool truefalse)
void noFlushAfterInterruptOrQuit(bool truefalse)
void markParityErrors(bool truefalse)
void setControlCharacters(const unsigned char *c_cc)
void oddParity(bool truefalse)
void killCharacter(unsigned char character)
verticaltabdelay_t delayAfterVerticalTab()
void switchCharacer(unsigned char character)
void quitCharacter(unsigned char character)
bool dontOutputCarriageReturnAtColumnZero()
void readThreshold(unsigned char count)
backspacedelay_t delayAfterBackSpace()
bool ignoreCarriageReturn()
unsigned char statusRequestCharacter()
void mapNewLineToCarriageReturnOnOutput(bool truefalse)
void hangupOnClose(bool truefalse)
void defaultOutputOptions()
inputmode_t inputMode()
void readTimeout(unsigned char deciseconds)
void lowerCase(bool truefalse)
void canonicalInput(bool truefalse)
void mapNewLineToCarriageReturnOnInput(bool truefalse)
unsigned char literalNextCharcter()
void parityCheck(bool truefalse)
void discardEndOfTransmission(bool truefalse)
unsigned char readTimeout()
bool echoErasedCharacter()
bool sendSignalOnBreak()
void anyCharacterStartsFlow(bool truefalse)
unsigned char delayedSuspendCharacter()
bool retypePendingCharacters()
bool expandTabToSpaces()
void delayAfterVerticalTab(verticaltabdelay_t vtdelay)
formfeeddelay_t delayAfterFormFeed()
void generateSignals(bool truefalse)
void emulateKill(bool truefalse)
unsigned char discardPendingOutputCharacter()
baudrate_t baud()
unsigned char endOfLineCharacter()
void echoNewLine(bool truefalse)
bool extendedFunctions()
void sendSignalOnBreak(bool truefalse)
void blockJobControlOutput(bool truefalse)
void delayAfterBackSpace(backspacedelay_t bsdelay)
void useFillCharactersForDelay(bool truefalse)
bool softwareFlowControlOnInput()
bool useFillCharactersForDelay()
void escapedUpperCase(bool truefalse)
bool blockJobControlOutput()
void startCharacter(unsigned char character)
tabdelay_t delayAfterTab()
bool anyCharacterStartsFlow()
void wordEraseCharcter(unsigned char character)
void postProcessOutput(bool truefalse)
void ignoreBreak(bool truefalse)
bool outputBaud(baudrate_t baudrate)
bool mapNewLineToCarriageReturnOnOutput()
void echoControlCharacters(bool truefalse)