// ================================================================== // MODULE: main.cpp // // DESCRIPTION: comm port communication with X-Rite DTP 24 // densitometer // // HISTORY: 17Oct97 code start CTY // ================================================================== #include #include #include "CYak.h" // --------------------------------------------------- void ErrorHandler(int error) // --------------------------------------------------- { char *msg; switch (error) { case -1: msg = "Write Problem"; break; case -2: msg = "Read Problem"; break; case -3: msg = "In ComInit(), CreateFile"; break; case -4: msg = "In ComInit(), Get or SetCommState"; break; } cout << *msg << endl; ExitProcess(1); } // --------------------------------------------------- int menu() // --------------------------------------------------- { int act = 0; cout << "****** X-Rite DTP-51 controller ******\n\n"; cout << " -1:\t to EXIT\n"; cout << "\n"; cout << " 1:\t for A/D Conversion rate\n"; cout << " 2:\t for Bar Codes\n"; cout << " 3:\t for Beep\n"; cout << " 4:\t for Baud Rate\n"; cout << " 5:\t for Calibration Check Tolerance\n"; cout << " 6:\t for Clear Error\n"; cout << " 7:\t for Configuration\n"; cout << " 8:\t for Compensaion (DTP51/52 only)\n"; cout << " 9:\t for Calibration Reflection\n"; cout << " 10:\t for Calibration Transmission\n"; cout << " 11:\t for Comparison Window\n"; cout << " 12:\t for Disable LCD Display\n"; cout << " 13:\t for Define Parse\n"; cout << " 14:\t for Define Strip\n"; cout << " 15:\t for Enable LCD Display\n"; cout << " 16:\t for Echo Character\n"; cout << " 17:\t for Gas Gauge\n"; cout << " 18:\t for Hue Limit\n"; cout << " 19:\t for Jump to Bit Menu\n"; cout << " 20:\t for Input Keys\n"; cout << " 21:\t for Keyboard Rate\n"; cout << " 22:\t for Next Patch\n"; cout << " 23:\t for N-factor, Transmission\n"; cout << " 24:\t for Output Keys\n"; cout << " 25:\t for Press Key\n"; cout << " 26:\t for Power-up Reset\n"; cout << " 27:\t for Photo Strip (DTP36 only)\n"; cout << " 28:\t for Read LCD Display\n"; cout << " 29:\t for Read Non-Volatile memory\n"; cout << " 30:\t for Read Register\n"; cout << " 31:\t for Read Status\n"; cout << " 32:\t for Read eXternal memory\n"; cout << " 33:\t for Send Strip Definition\n"; cout << " 34:\t for Strip Measurement\n"; cout << " 35:\t for Send Parse Information\n"; cout << " 36:\t for Software Version\n"; cout << " 37:\t for Step Wedge\n"; cout << " 38:\t for Transmit Strip\n"; cout << " 39:\t for Write LCD Display\n"; cout << " 40:\t for Write Non-Volatile Memory\n"; cout << " 41:\t for Write Register\n"; cout << " 42:\t for Write String (to external RAM)\n"; cout << " 43:\t for Write eXternal memory\n"; cout << " 44:\t for Transmit Errors\n"; cout << " 45:\t for Transmit LCD Display\n"; cout << "Enter Command:\t"; cin >> act; cout << "\n\n\n"; return act; } // --------------------------------------------------- main() // --------------------------------------------------- { int ierr, a, act = 0; char *dd, *bb; a = 0; CYak *session; session = new CYak(); ierr = session->ComInit(1); // Initialization while (act != -1) { if (ierr < 0) // there is error; don't continue { ErrorHandler(ierr); return 0; } act = menu(); // UI switch (act) { case 1: // ----- AD Conversion Rate ------------- dd = new char [2]; cout << "Choose from following\n\n"; cout << "00: normal, all data stored\n"; cout << "01: every other A/D sample\n"; cout << "02: every third A/D sample\n"; cout << "03: every fourth A/D sample\n"; cout << "-1: every other A/D sample not stored\n"; cout << "-2: every third A/D sample \n"; cout << "-3: every fourth A/D sample\n\n"; cin >> dd; ierr = session->ConvRte(dd); break; case 2: // ------ BC Bar Codes ------------------- cout << " 1: to enable barcode\n"; cout << " 0: to disable barcode\n\n"; cin >> a; ierr = session->BarCode(a); break; case 3: // ------ BP Beep ------------------------ cout << " 1 for long beep\n"; cout << " 0 for short beep\n\n"; cin >> a; ierr = session->Beep(a); break; case 4: // ------ BR Baud Rate ------------------- dd = new char [2]; cout << "Choose from following\n\n"; cout << "06: 1200 baud\n"; cout << "0C: 2400 baud\n"; cout << "18: 4800 baud\n"; cout << "30: 9600 baud\n"; cout << "60: 19200 baud\n\n"; cin >> dd; ierr = session->BaudRte(dd); break; case 5: // ------ CC Calib. check tolerance ------ dd = new char[2]; cout << "range 00 -> 15\n\n"; cin >> dd; ierr = session->CalbChk(dd); break; case 6: // ------ CE Clear Errors ---------------- ierr = session->CleaErr(); break; case 7: // ------ CF Configuration --------------- dd = new char[2]; bb = new char[2]; cout << "Enter the selection\n\n"; cin >> dd; cout << "Enter the option\n\n"; cin >> bb; ierr = session->Config(dd, bb); break; case 8: // ------ CO Compensation ---------------- cout << "1: to enable color compensation\n"; cout << "0: to disable color compesation\n\n"; cin >> a; ierr = session->Cmpnstn(a); break; case 9: // ------ CR CalRefl --------------------- ierr = session->CalRefl(); break; case 10: // ------ CT CalTran --------------------- ierr = session->CalTran(); break; case 11: // ------ CW ComWind --------------------- cout << "0: 12 HRW .061% R .046% T\n"; cout << "1: 5 HRW .092% R .067% T\n"; cout << "2: 3 HRW .122% R .092% T\n"; cout << "3: 2 HRW .244% R .183% T\n\n"; cin >> a; ierr = session->ComWind(a); break; case 35: // ------ SP Send parse information ------ dd = new char[2]; cout << "Enter strip location\n\n"; cin >> dd; ierr = session->SndParI(dd); break; case -1: // ----- quit project --------------------- break; } } delete session; return 0; }