260 likes | 419 Views
Training Course. Casio DT-X7 Stocktaking Sample. Name: Arne Reinelt Function: Product Support Mobile Industrial Solutions. DT-X7 Stocktaking Sample. Upload data to PC. Workflow. Get user name, rack number, and article numbers Deactivate certain records due to wrong input
E N D
Casio DT-X7 Stocktaking Sample Name: Arne Reinelt Function: Product Support Mobile Industrial Solutions
DT-X7 Stocktaking Sample Upload data to PC
Workflow • Get user name, rack number, and article numbers • Deactivate certain records due to wrong input • Write all data to specific files • Upload data files to PC by using Casio LMWin communication software
RACK1.DAT RACK2.DAT RACK9.DAT APPEND Data Flow Date User Time DATA.TMP Rack Price Barcode Quantity DATA.DAT
Flow Chart Collect Data Delete Data Upload Data
Object Orientated Design • Show data • Get data from user • Show system status Presentation Layer(Dialog Classes) • Collect data • Delete data • Upload data Business Layer (Business Transaction Class ) • Read/write to file • Read/write to DB • Query DB Data Layer (Data Class)
System Library (System Settings) Keyboard CPU Speed Mouse Pointer Speaker / Vibrator OBR Library (Scanner) Flink Library (Data Communication) Casio Libraries
OBR Conditions OBROpen(...) closed opened OBRClose(...) • Scanning disabled • Changing the settings enabled • Trigger keys not occupied • Scanning enabled • Changing the settings disabled • Trigger keys occupied
Main Dialog Sub Dialog Reader Thread OBROpen … OBRGets … OBRClose Data Fast Switching Synchronization done by CCriticalSection object OBR Workflow
OK OK CheckStatus Error: break FLKFileAdd Error: return OK CheckStatus Error: break FLKDateTime CheckStatus FLKClose CheckStatus Exit Data Communication FLKOpen do You must disable ActiveSync when using FLink while( false ) CheckStatus:Necessary due to asynchronous function calls
Special Features • Full Screen Mode • Color buttons • Custom Fonts • Keyboard Navigation • Hot Keys (Red, Yellow, and Blue) • Custom Title and Task Bar • MFC Collection Classes
Custom Title Bar Client Area Custom Task Bar Full Screen Mode
Client windows are smaller than the main application window Custom taskbar stays visible all the time Using dialog template to avoid duplicating common functions Full Screen Mode
Custom Fonts Different Font Styles
Workshops Casio DT-X7 Stocktaking Application Star Wars Edition
Installation ~ 15 Minutes • Install latest libraries to your DT-X7 • Copy OBRDRV.ini to \FlashDisk\System Settings\, and overwrite the existing one if necessary • Deploy release version of DTX7_Stocktaking application to your mobile device • Test the application…
System Library ~ 30 Minutes • Add new function to CHelper class in order to get the device ID of your DT-X7 • Use this newly added function to display the device ID when the [Make Settings] button from main menu is pressed (display only relevant digits) • Play warning sound through buzzer when battery power drops below 15 percent • Repeat that warning every 5 seconds • Hint: Use CheckBatteryPower( ) function in CDTX7_StockTakingDlg class as starting point
OBR Library ~ 30 Minutes • Enable notification by vibrator for scanning complete condition • Two possibilities: • Modify InitSettings( ) in CDTX7_StockTaking class and Init( ) in COBRWedgeBase class • Modify Modify OnBprdok( ) in CTX7_ProductDlg class • Allow to read Code128 instead of Code39 for the user name • Hint: Modify MakeSettings(…) in COBRWedge class
Flink Library ~ 30 Minutes • Modify the application to copy all data files one by one to PC instead of appending all data to only file on PC • Hint: You will have to make your changes in SyncJobStandard(…) in CFLCEWedge class
Homework • Modify the data layer (CData class) to use a database of your choice instead of MFC collection classes • Modify the communication part to use Bluetooth or WLAN instead of LMWin • Add more thread functions to the CFLCEWedge class, e.g. to receive new program versions from PC • Add your own functions to the settings menu, e.g. to configure the trigger keys • Add your own submenus to collect data for different departments