API per l'accesso ai segnali CTS e DSR della porta seriale [chiusa]

1

Sto cercando di migliorare un'altra astrazione della porta seriale. Il progetto coinvolto spesso deve controllare uno dei segnali di controllo singoli CTS e DSR. Questo è attualmente fatto da una chiamata a GetCommModemStatus , che è molto prolisso: una variabile è necessaria e un'operazione binaria AND, GetComModemStatus può anche fallire (questo è più teoricamente, ma dove controllarlo altrimenti ...)

Desidero espandere la "astrazione" in questione dai getter per CTS e DSR. E ho bisogno di aiuto nella decisione di farli restituire bool o int e se il prefisso get non renderebbe più difficile leggere il codice risultante? Dovrei usare la piena maiuscola?

Ecco alcuni esempi di codice che utilizzano la nuova API:

1) con prefisso get e risultato booleano

if (sp.getCts()) {
    // CTS is ON
}

if (!sp.getCts()) {
    // CTS is OFF, in my eyes this looks like getting CTS has failed
}

2) nessun prefisso get con risultato intero

if (sp.Cts()==1) {
    // CTS is ON
}

if (sp.Cts()==0) {
    // CTS is OFF
}

3) con CTS maiuscola (di nuovo, nessun get con bool risultato)

if (sp.CTS()) {
    // CTS is ON
}

if (!sp.CTS()) {
    // CTS is OFF
}

... questo è solo per illustrare ciò che ho provato in mente; forse c'è anche una soluzione migliore che ho tralasciato?

    
posta Wolf 19.09.2014 - 10:36
fonte

0 risposte

Leggi altre domande sui tag