Wiki

Clone wiki

TymeSync / ChangelogJuly12

01 July 2012 - Rest Day

02 July 2012

  • The logic error on the WinPro data fetch is fixed.
  • This fix also significantly improve the code in the areas of the data fetch itself.
  • Instead of using the C# code (was C++ last time) to record and compare the recent data, this time [SyNC] only runs SQL script in order to get the data we want.
  • Running _only_ SQL script to fetch data saves memory/CPU consumption as SQL Server (both Express/CE) is already optimized to do as such.
  • The SQL script also generates _unique_ results via
[Date] + [Time] + [Card_No]
  • If the same person scan twice in the same minute, it will be regarded as 1 transaction
  • Added NetPass property to Clocks. This is only a preparation to intergrate the new clock easier.
  • Added UI for Multi RawDB
  • Stores data properly. One slight problem in testing. this data is encrpyted. its hard to know if the correct data are inputed or not.
  • List similar to ClockConfig
  • Most codes are taken from ClockConfig (but modified slightly)
  • Added RawDB to right-click menu
  • [not complete] still missing something.
  • # server status seems broken
  • # still need more testing.
  • Now the Raw thread should properly start after any config windows are closed
  • Fixed issue with the Raw Threads are not closing when close btn was clicked
  • Fixed issue with the SQL data keep repeating itself (it was searching-for/key-in the wrong data)

03 July 2012

  • Fixed a bug that cause the Clock's data not stored
  • There are still no UI for main(remote) DB
  • Added RemoteDB config on MainConfig window

04 July 2012

  • Reseach on Encryption for PHP source code
  • this leads to Obfuscation technique instead

05 July 2012

  • Finallize the research with a cheaper version for this Obfuscation technique
  • The software is called TrueBug PHP Obfuscator 2
  • Testing with C# compatibility with OTX760c / ES760c
  • early test shows that its quite simple to do this.
  • Modified [SyNC]'s current ClockThread (currently are not that optimized)
  • Merged DateTime update with GetLatest transaction under one method for elid, as _et();
  • [BUG FOUND] apparently, the RawDB aren't saving "disabled" status properly
  • added OTX760c or renamed ES760c to the clock list. (still can't check for the status (Clock Config) or update date/time (MainWindow / AdvancedConfig))

06 July 2012

  • added the other main clock function to for ES760c.
  • Connection Status on Clock Config
  • Update Date/Time on MainWindow (clock thread)
  • Update Date/Time on Advanced Config
  • Fixed the RawDB window aren't functioning properly
  • Tested 710c clock.
  • will complete the clock functions tomorrow.

07 July 2012

  • Completed the other functions for 710c
  • Clock new data check on main window (thread).
  • Connection Status on Clock Config
  • Update Date/Time on MainWindow (clock thread)
  • Update Date/Time on Advanced Config
  • Fixed a bug with the System.Configuration

08 July 2012 - rest day

09 July 2012

  • Experimented and tested the base functionality of how finger print template is stored and uploaded.
  • Both function on ET3100 and OTA760c are tested.
  • ET2300 no longer being tested.
  • OTA710c will be tested after the new DLL/update recieved from the factory. (based on priority)
  • [TODO 10 July 2012]
    • Plan database for Fingerprint database
    • Plan database for User database (for OTA760c)
    • UI finger print download/upload

10 July 2012

  • Removed ET-2300+ series from clock list
  • Clean up variable.cs file
  • Prepared a base file for fingerprint
  • this file access other user_control (type of cs) of other types of clock so :
base_file -> user_control
FingerPrint -> ET 3100 
FingerPirnt -> OTA 760c
  • This approach is used so that we could always add newer clock easier in the future.
  • Found and implemented a different approach to
System.Collections.Generic.KeyNotFoundException
  • Was using try-catch in order to "silent" this error, but the new approach checks for the key exists or not first.
  • using try-catch caused huge performance issue (loading the clock config)
  • Please note that this technique is slightly different than normal coding checks for unexisting value.
  • The try-catch is still kept to avoid any unnessary error (lack of testing)

11 July 2012

  • Fixed issue with the DataGrid crashing when ever the user try to "update" the field.
  • Although its not useful on ET3100, this function will be required on the OTA-760c
  • Changed/modified the DataGridThemes of WhistlerBlue to ExpressionLight in the Fingerprint Management
  • [slightly darker looks, and fixes the issue with the selected item]
  • Changed the "selection by ID" approach slightly, now shows a box of id lists based on selection on the Local Data tab
  • The UI for download/upload is similar
  • The UI for delete is slightly different but still similar
  • The UI for more info is different.
  • However their function are yet to be added. The codes are there, just not functioning properly
  • Did a short research, on Auto-Update exe. there are a lot of promosing opensource that we could implement.
  • More research regarding this will be done later.

12 July 2012

  • Fixed an issue of selecting OTA-760c after removing the ET2300+ series
  • The problem faced here was when selecting OTA-760c, [SYNC] run for ET2300+ instead. This also causes the application to crash.
  • Fixed variable mixed-up on user_data. (UserName -> Name and UserPassword -> Pass)
  • Improve the approach to COM port conversion, e.g
  • COM4 -> 4
  • Was using Regex, but Regex has a very HUGE overhead.
  • [Found] There is a flaw with download selection using the by UserID on the LocalDB tab.
  • The list only shows data that _already_ exists, it would be a problem to download unexisting data.
  • Added an approach to "simplify" esdk start connection and end connection.
  • Currently, all the esdk related functionality has the lenghty lines of codes for both start and end (including the error catch/fallbacks)
  • This is still not implemented to the whole code yet]
    • Removed the log function to its own class under a static function from the MainWindow.
    • its better if all the rest of the codes that need to log something be able to attach to it easily.
  • All the functionality of the normal finger print management is added.
    • List Local DB data
    • Download template
    • Upload template
    • Delete template
    • More info
  • However, some of the functions listed below are still not behaving normally
    • Download by ID : does not download at all.. seems like stuck at some point.
    • Delete by ID on LocalDB : Only delete one data
    • Delete by ID on Both (also have localDB) : only delete one data
    • Download : Always skips one line.
    • Upload : Always skips one line.

13 July 2012

  • Fixed Delete by ID on localDB problems
  • Problem with the messages keep on skipping one line should be resolved.
  • At certain times, the message might appeared to be missing or duplicated.
  • this problem is actually because the message was eithertoo fast or too slow while the background worker have already completed or still processing an item.
  • Added total progress number e.g
  • Added page for OTA760c (the UI is completely a carbon copy of the UI for ET3100)
  • Added More Info function
  • Added Download function
  • Added Upload function
  • Added missing total count on Upload of ET3100

14 July 2012 - On Leave

15 July 2012 - RestDay

16 July 2012

  • Added missing total count on Download of ET3100
  • Added sql delete method for OTA760
  • Added "save" for OTA760 to update changes on DataGrid
  • Fixed crashing issue when changed from ota760 to et3100 back and forth (when the data grid is filled with data)
  • Added exception error to the ErrorLog for Finger Database Management window
  • Tested OTA-710c ocx file. the Catastrophic error still occurs.
  • [Major BUG #1]
    • Testing RawDB <-> RemoteDB conflict
    • Works fine at the moment. May have to test in more depth.
    • The save mechanism works fine.
    • The READ when the Sync starts up is broken.
    • Apparently the bug is actually simple. There was a missing varible that causes it to read the RawDB everytime.
  • [Major BUG #2]
    • Activating, multiple window works fine. but if either one of the window are closed. the main threads will start again.
    • This is generally an unwanted behavior as it might conflict with other commands. As most of the other windows also requires that the DLL (esdk or ota) to be free.
    • More testing are required.
  • [Major BUG #3]
    • While testing for BUG #2, bug #3 was (re)found. The bug is when the main window is no longer acts like the main window. the
    • Advanced Configuration Window now acts as if its the main window.
    • Advanced Config now controls the "Main Exit".
    • More testing are required.

17 July 2012

  • [Major BUG #3]
    • This problem actually caused by a temporary "idea" that was put in place to "fix" the problem on [BUG #2]
    • However, the problem on [BUG #2] are not actually fixed yet, the code added in place is just the "base" idea of how to fix it.
    • It states on the MSDN documentaion that the first window that is properly initialized, will be the Main window.
      • The [BUG #3] occurs because, the Advanced Config ran inside the Main Window before Main Window even completely and properly initialized
      • This problem are fix using another function that initiates all the other windows after the Main Window is properly initialized.
  • Optimizes the Windows Open.
    • Now, if you activates other application while [Sync] is running, [Sync] will go into the background. This behavior is normal and as expected. However, if after that you try to open any [Sync] configuration windows from the TaskBar Icon, the [Sync] configuration windows will also starts on the background. This behavior is not normal and unexpected.
    • The expected behavior is, regardless of the status of [Sync], minimized, hidden, normal, in background. The configuration window must starts as active when it is started.
  • [Major BUG #2]
    • Fixes the [BUG #2] using part of the actual fixes for [BUG #3]
    • Simply defines the status of a window when ever it opens. then check these statuses when it closes.
  • [Major BUG #4]
    • Apparently, the application does not detect/handle Alt + F4 properly. After using Alt + F4, the application goes to crash (because
    • resources aren't released or released too early)
    • The part of the code that handles the closing event was actually coded in such a wrong way that it cause this problem. This problem is resolved after. Currently the following situation happens when the application is close
      • Application exits after confirmation from the user silently.
      • There are no longer any interface showing up right after the application is ordered to be closed.
      • There are still some slight delay before the application completely close (in this sense, the application is trying to
      • kill/dispose all the threads)
      • This leads to a possible unwanted behavior. The problem that might lies is when the user tries to rush to start the program again, the application might duplicates.
      • At the moment we are not sure of what behavior will occurs whenever there are multiple tyme sync ran at the same time.
      • At most the application (that run on the same folder) will conflict each other until the.
      • This problem is still considered minor but leads to another [TO-DO].
  • [To-Do]
    • Create a "checking" mechanism that detects if there are multiple instances of [SyNC]. Works like e.SDK GUI where it simply ask the user if he/she wants to continue running multiple at start up.
  • [Major BUG #5]
    • Apparently, the OCX files from 760 and 710 are not transfered/embed/running properly under normal conditions. The problem actually * arise when the OCX are not registered to the system environment. This is a problem.
    • When the whole folder is copied to Tommy's PC, the file should be transfered together as including the source. However, this ins't the case. It simply crash and does detect the locally available OCX file. More research on this will be required.

18 July 2012

  • [Major BUG #5]
    • Fix the problem with [BUG #5]. The ocx file (750ocx.ocx) are prior checked.
    • If it does not exists, [Sync] will automatically register the class via RegSvr32.exe
    • The command are run right durring startup in order to stop the application from failing when it open the MainWindow.
    • The new technique in order to use OCX in WPF is continued to be use as it provides better wrapper compared to before.
  • [Major BUG #4]
    • There are still some problems need to be rectify with the closing mechanism.
    • Apparently, the closing for the License window are bugged slightly.
  • Removed support for OTA710. (some of the codes are still there, just commented for future reference)
  • Added another UnhandleException logger (for some reason MicroSoft decided to make 3 of these. At the moment, we still only use 2).
  • Forced the application to run as Administrator (because of the RegSvr32).
  • Finger Database, has some tweakings need to be done [ tested on 3100 ]
    • Does not applies the use of the checkbox provided in TheList to enable/disable which clock to be processed
    • This is currently partly done. It is still not working with the Download (need more testing)
    • Upload seems to be working.
    • Delete seems to be working.
    • Messages on Download is quite ... messy.
    • Logging provided by this application is also.. messy.
    • Total count of process (the [ x / y ] part)
    • Apparently, the upload fail to take the number of clocks in to consideration.
    • Delete -> by id -> clock only [2 / 3] should be only [2 / 2]
      • the +1 is possibly the add for db?
      • needs more testing.
    • Upload All is missing all total completely.
    • Download by ID fails. Apparently, download does not work again. Possibly because of the PC?

19 July 2012

  • The test for update [Sync] seems to show a slight increase in resource usage. The application is aimed to use as less resouces as * possible.
  • One part that might be the cause is the frequent open/close connection to the LocalDB. In this case, the connection should be kept open at most of the time.
  • After a set of testing using RedGate Memory profiler and RedGate Performance profiler, it appears that all the resources are caused by the frequency in "open/close connection."
  • The open/close connection does not only come from the localDB, it also comes from the clocks.

20 July 2012

  • Study Git, seems like there are something wrong with Push request on Git which are hosted in Windows.
  • Setup Sync on bitbucket. https://bitbucket.org/hafizbistar/sync to access
  • This way, every technician can report. They can't have the access to the source though, because a team can only consist of 5 people. the 5 people possibly given to the important users.

21 July 2012

22 July 2012 - Rest Day

23 July 2012 24 July 2012 25 July 2012 26 July 2012 27 July 2012 28 July 2012

29 July 2012 - Rest Day

30 July 2012 31 July 2012

Updated