Monthly Archives: June 2011

Tom De Vito 6.7.11

Start: 10:00

Com Console:

  • Added StringEnum class because it is useful for keeping track of valid commands, responses, states, and serials.  Made it inherits from Printable so it will be able to print to console.
  • Fixed the compiling errors in Command, Response, and State
  • The methods for serial tracking as well as some other methods make these classes superior to the structs.

ComMgr:

  • Realized I was still using the hard coded com port.  Making it so it can use a number that was passed in was a bit tricky.  CreateFile uses wchar_t which are not easy to manipulate with sprintf.  CreateFileA use LPCSTR which works with standard character arrays.  sprintf_s allows you to manipulate a standard character array as opposed to a char pointer array
  • Added a resetPort method.  I think its better that you do it manually after making all the setting changes.  Also added changePort method.

char portNum[32];
sprintf_s(portNum, sizeof(portNum),”COM%d:”, _port);
hCom = CreateFileA(portNum, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

  • Added run function so the send and receive methods didn’t need to be called individually.
  • Still trying to find a tutorial for transmitting large objects.  Want to get this working before I start working on the ArduinoController and tweaking the command, response, and  state classes.

Notes On Using pointers:

  • Phil showed me how to use pointers to copy a string byte by byte to a memory location allocated to integers.
  • Create a pointer of type x(in this case a char*)
  • Create another pointer and set it equal to this pointer.  This sets it to the beginning of the memory allocation.
  • Create another allocation of memory to be copied to(In this case it was an array of 256 integers)
  • Create another pointer and set it to the memory address of the new allocation.  Cast this to the type of the original data(in this case char)
  • Start a loop which runs til it reaches the size of the original allocation
  • Within the loop, set the contents of the new allocation equal to the contents of the old then increment both pointers.
  • After the loop, set reset the new allocations pointer back to the beginning of the memory address.

Going to  try doing this with different data types, arrays, and structs tomorrow.

End: 6:30

Mike 6.7.2011

  • Created a way to link to external web pages from within documents
  • Created a preliminary way to link to other documents from within a document, clinking on a link brings up the document in a new panel
  • Worked on removing a lot of build warnings
  • Fixed an issue that caused panel titles to be missing
  • made it so images do not have to have captions and thus waste less space
  • Made a new text input component to allow editing of document section titles in place
  • Ported some of the fgmdev site to the document system.  Came up with a list of needed improvements while doing so:
    • Editing of documents is very clunky and requires too many clicks / new screens, should be able to edit text in place
    • Saving needs to be done automatically whenever a major change is made
    • Configuring images is difficult, especially for large ones that can screw up the config screen.  Again, editing images in place instead of a new screen would be nice

Dong Shin 06.07.2011

  • deployed the latest PPM to fgmdev.com
    • missing some table fields in update SQLs! Ugh. – fixed
    • bug in Funding Request Form editor allowing edit of only Program Element – fixed
    • fixed loggin info label not clearing up after logout

Phil 6.7.2011

7:30 – 4:30 VISIBILITY

  • Cleaning up and commenting the InfoObjectEvent code
  • This is very interesting: schema.org. Bing, Google and Yahoo are using it. It would be nice to make an ingestor that would be able to look through a tagged document and build a variety of tables…?
  • Progress with the server! Was able to fill out a *new* form that requests firewall access. This works as an addendum to the original port request.
  • Bill Dolly came over for drinks and discussion

5:30 – 6:30 – FP

  • Walked through some of Tom’s code, and showed him how to use pointers to copy memory, regardless of how it’s typed.

Tom De Vito 6.6.2011

Start: 10:45

Amplifier:

  • Assembled the amplifier from sparkfun
  • Edited a arduino sketch that might be useful for testing to see if A. how well the small amplifer controls the larger one and B. test both types of exciters
  • Have not tested yet

ComMgr:

  • Did a simple one byte pass-response to make sure everything was working thus far
  • Added some test structures which will later be part of ArduinoController once I know its working
  • Add command response and state classes but are not using them yet.  It might be better to use structs on the arduino side, so I am not sure if these will be used once everything is working.

End: 6:45

Dong Shin 06.06.2011

  • PPM Changes
    • Roles Management  working – save works
    • disabled editing of Admin’s roles
    • changed User object to retrieve permissions on login
    • changed menu items to bind to User’s permissions
    • Project Management panel changed to take permissions

Kristi 06.06.2011

Fabulous weekend!  Hope everyone had a great one too.

Back to work:

Documentation is coming along nicely.  

Overall screen shots and outline are near completion.

It would be prudent for me to sit in on next couple of meetings with customer to listen in to help “round out” & “fill-in” documentation manual.

Phil 6.6.11

7:30 – 11:00, 3:30 – 5:00 VISIBILITY

  • Turns out it’s my IT band that’s the problem, not the LCL. Need to make a PT appt this week.
  • Working on callbacks from InfoObjectManager. Looks like everything is working. Need to test,  add comments, and check in
  • Helped Brian register Jeff’s server for dual-facing proxy service

Tom De Vito 6.3.2011

start: 9:15

ComMgr:

  • added set methods for all the properties involving the com port.  The constructor sets the defaults and each change will close and reopen the port to save the change.
  • port numbers can now be passed in
  • Set up toString to reflect what it should look like once everything is working.
  • Setup a basic sketch for the arduino so when i figure out how to send data structures I can test it.

End: 6:03

Dong Shin 06.03.2011

  • PPM Role Permissions
    • Project – Create, Copy, Modify, Enter Monthly Status, Financial Status
    • Funding Request – Create, Modify
    • Manage Contracts
    • Manage Appropriations
    • Monthly Status Report
    • User Management – Create New User, User Management, Activate New Users
    • Utils – Local Logs, Server Logs, Query Logs, Database Management
  • Create roles table
    • DROP TABLE `user_roles`
    • DROP TABLE `roles`
    • CREATE TABLE `project_portfolio`.`roles` (
      `type` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
      `create_project` TINYINT NULL DEFAULT NULL ,
      `copy_project` TINYINT NULL DEFAULT NULL ,
      `modify_project` TINYINT NULL DEFAULT NULL ,
      `enter_monthly_status_data` TINYINT NULL DEFAULT NULL ,
      `financial_status_data` TINYINT NULL DEFAULT NULL ,
      `create_funding_request` TINYINT NULL DEFAULT NULL ,
      `modify_funding_request` TINYINT NULL DEFAULT NULL ,
      `manage_contracts` TINYINT NULL DEFAULT NULL ,
      `manage_appropriations` TINYINT NULL DEFAULT NULL ,
      `monthly_status_report` TINYINT NULL DEFAULT NULL ,
      `create_new_user` TINYINT NULL DEFAULT NULL ,
      `user_management` TINYINT NULL DEFAULT NULL ,
      `activate_new_users` TINYINT NULL DEFAULT NULL ,
      `local_logs` TINYINT NULL DEFAULT NULL ,
      `server_logs` TINYINT NULL DEFAULT NULL ,
      `query_logs` TINYINT NULL DEFAULT NULL ,
      `database_management` TINYINT NULL DEFAULT NULL ,
      PRIMARY KEY ( `type` )) ENGINE = InnoDB ;

  • working on Roles Management
    • flipped the data around to view data more friendly(?)

Phil 6.3.11

8:00 – 3:00 VISIBILITY

  • Producing a few more tables from the General categories.
  • The InfoObjectManager cannot tell you that a database call that does not return any results (i.e. an INSERT) has returned successfully or failed. Fixing that.
  • No progress on getting ports opened.

Tom DeVito 6.2.2011

Start: 9:30

Com Console:

  • Removed parts from the monitor class and put them into the ComMgr and ArduinoController classes.
  • Useful Windows console functions: http://msdn.microsoft.com/en-us/library/ms682073%28v=VS.85%29.aspx
  • Added sizing to the constructor so that the buffer and windows size will be appropriate for the application.  It seems that the buffer size width and height must be in a certain ratio in order to work properly.
  • Got multiple lines to be overwritten using SetConsoleCursorPosition to set it to (0,0).  At first I used std::system (“CLS”) to clear the screen, but this was flashy so the other way is better.
  • Added an output array to receive data to be printed from other classes
  • added Printable class so there is a common type for the print method to use
  • removed test data and methods
  • sprintf is used to format char* to a char* without printing it

Notes:

  • malloc is prefered over calloc not exactly sure why besides it having less parameters and something about calloc zeroing everything.  Will need this when sending large objects over the usb wire.

End: 6:00

Dong Shin 06.02.2011

  • PPM Changes
    • added Contract select button to Financial Status Data form so that the contracts are editable only from Contract Select Window
      • Contracts cannot be added/changed to Reimbursable (Non-Direct Cites)
      • added Update query for contracts
    • reworking Financial Status data query – not returning correct data…. – fixed
    • save Obligations and Outlays based on Direct Cite status – No Direct Cite saves the data directly to the funding_request table, direct_cites table otherwise
    • changed the way the financial status data gets saved – save at the Financial Status Data form and fire an event to refresh the data
    • looking into Role Management

Phil 6.2.11

8:00 – 5:30 VISIBILITY

  • Pinged Christine
  • Trying to figure out the report creation scheme of SonicRecruit. The help is absolute crap.
    • Reports
      • Candidate
        • Application – produces small table of last name, first name, date applied, status date, job id, and job title
        • Candidate Historical – produces large table of last name, first name, status, status date, job id, job title, status changed by. Ingesting
        • General – produces large table. Name, Title, Recruiter, Location, City, Education, Source, Applied for, Job Title, Status, Date, How did you learn about this opportunity, Job status, Job recruiter, job category, job duration, job date posted, currently, location, Clearance level. Ingesting
        • Historical
        • Duplicate Candidate
        • Status / Source
        • Feedback Form
      • Job
        • Job General
        • General
        • Historical
        • Job Candidate
        • Statistical
        • Cost Per Hire
        • Crosspost Summary
        • Crosspost Detailed
        • Bottleneck
      • Division (Dialog)
      • Activity
        • Events
        • Comments
        • User Login / Logout times
        • Hiring Manager Login / Logout times
        • Action Report
      • My Saved (no templates saved on any)
        • Candidate Templates
          • General
          • Historical
          • Status
          • Feedback
        • Job Reports Templates
          • Job/Candidate
          • General
          • Historical
          • Statistical
          • Cost-per-hire
          • Crosspost detailed
        • Division Reports Templates
          • General
      • All Saved (Same as My Saved except for)
        • Candidate Reports Templates
          • New Hires (standard)
        • Job Reports Templates
          • open jobs/candidate report 2011 (excel)
      • Analytics
        • Resumes
          • Source Efficiency
          • Hired Source Efficiency
          • Hiring History
          • Current Applicant Status
          • Historical Applicant Status
          • Applicants for Open Jobs
          • Custom Fields Reports
        • Jobs
          • Opened/Filled Historical Status

FP

  • Worked with Tom on putting together a better-structured testbed

Cool thing:

  • Sandboxie runs your programs in an isolated space which prevents them from making permanent changes to other programs and data in your computer.

Tom DeVito 6.1.2011

Start:  8:30

Com Monitor Console:

  • r is for carriage return which makes the next line overwrite the previous.  If the string is shorter in length it will not clear all the extra characters.  Padding the data with zeros helps make sure the string stays the same length.  It is important to resize your console to fit the whole line or it will scroll the first line and go back to the beginning of the second line.
  • Need to make another class to handle actual communications instead of having it in the monitor class as it is now.
  • getch() halts the loop so its not good for user input in this case.  I forget which one to use instead.

Notes for ComManager class:

  • Init should be moved into this class
  • sendData and recieveData should also be moved and changed to accept null pointers and a size.  This should be easy on the sending side but I am not sure about the receiving side unless the size is always the same.  I will have to see if there is a way to get the size of a incoming package so that the method knows how much its receiving.  One possible solution, if nothing else, might be to put the size in the first byte and have two ReadFile calls one to grab the size and the other to grab the remaining data using that size.
  • Need to read this tomorrow to get an idea of how calloc is used to make a generic array:  http://www.cplusplus.com/reference/clibrary/cstdlib/calloc/
  • Need to look up more information on void pointers.  They seem to be typeless pure memory and can be cast into anything.

End: 5:00