- PPM Changes – Trish’s review changes
- Removed Location from Contracts in Funding Request
- Corrected typo on OISR-PMO and OISR-TF to ISR-PMO and ISR-TF in Funding Request
- Performance Location column in Funding Request is now editable and stored in Contracts table
- changed FY Budget in Financial Status to total of the FY selected – not FY and the appropriation
- added comments to roles table to describe columns
- retrieve comments SQL –
SHOW FULL COLUMNS FROM roles - tooltip added to the User Roles Management to show comments of the column to describe the actions
Phil 6.10.11
9:00 – 2:00 VISIBILITY
- Went over Trish’s changes with Dong
- Meeting with Christine
- Proxy stuff for Jeff’s server
Tom De Vito 6.9.2011
Copying structs by bytes:
- At first I had it so that I was setting pointers for each struct and then casting the pointers into a char*. Putting a & in front of the struct name returns the address of the struct eliminating the need for the extra pointers. ex: char* test = (char*) originalData
- Another thing that was wrong was that I was getting the size by measuring the length of the character array. This worked fine when I was using unsigned chars as data members but when I changed it to int things broke. The proper way to do it seems to be sizeof(structName). This has worked consistently no matter what the data types were including non-primitive string type. (NOTE: to use string with printf, the c_str() method needs to be called to format it properly.)
- sizeof(somePtr) seems to always return 4 bytes which I assume is the size of the memory address. This may be why we were having trouble with sizeof because we were taking the size of a char*, if we were looking for a sizeof(char[]) it would have probably worked. I tried to find the sizeof the contents of the pointer and it also said 4 bytes. This might have been because the address it was pointing to was type int. Either way it wasn’t giving the full size of the allocation which was 12 as found by sizeof(struct) which makes sense considering it had 3 ints in it.
ComMgr:
- It seems I can put the memory address into a void pointer so that send data won’t have to worry about what type it is. The size will also have to be passed in because its hard to get the size from the pointer.
- The type needs to be identified so the arduino will know what to do with the data.
- Just noticed WriteFile is taking the address of the object and the next parameter is the size. So I guess you can pass anything you want into it as long as you know the size.
- Have it working with the objectPtr and the size but its still only working with one byte.
Arduino
- Phil recommended that there be 4 states for the arduino: Ready, Reading, Converting, and Writing. We may need a 5th for executing once it has to actually do stuff but for communications this should do. He also suggested putting 4 leds and indicators of each state so we don’t have to depend on the console to tell us during the debugging phase.
- Had to change the write method on the arduino side to print for whatever reason. Have to look into why this suddenly stopped working tomorrow.
Dong Shin 06.09.2011
- PPM Changes
- fixed data request not deleting properly for more than one data
- fixed refresh of the data request not clearing data provider when no data returned
- fixed select all and delete not working properly….
- disable Select All checkbox when no data present in Financial Data Request
- change DoubleClick on the Financial Data DataGrid to ItemDoubleClick
- tried to find some Flex/ActionScript code metrics tools; Flex PMD looks good, but could not install? following command works (just the number of lines in the file).
- find . -name ‘*.as’ -or -name ‘*.mxml’ | xargs wc -l
- 37403 lines for PPM client
- RichCodeAnalyser


Phil 6.9.11
8:00 – 6:30 VISIBILITY
- I-95 was a mess today. Took back roads in.
- Cleaning up and documenting SqlInfoObject – done
- Cleaning up and documenting QueryResponseObject – done
- Cleaning up and documenting QueryObject – done
- Cleaning up and documenting InsertObject – done
- Cleaning up and documenting CreateTableObject – done
- Meeting with Trish to go over the new PPM at 2:00
- Role Management
- The actions need some more description
- Didn’t see the “can only see data I’m connected to ” option
- Funding Request
- Change OISR-PMO and OISR-TF to ISR-PMO and ISR-TF
- Don’t need the “Location” column under contracts, but the Performance Location needs to be editable
- Funding Status Data
- The FY XX budget value isn’t calculating correctly – it should be the same as the FY XX value from the Project Editor
- Each value in the “Amount” column comes from a single funding request. The “Remaining To Distribute” subtracts that particular amount from the total FY XX budget for that project. The Direct Cites and Reimbursables are on lines that have no Amount. In other words, there is an amount, then up to a few lines for that particular funding request, then another amount, and so on.
- I have screenshots of all the above.
- Role Management
Kristi 06.08.2011
HUMBLE CORRECTION… Not close to done with manual!
I am coming across lots of changes – due to the update Dong recently performed…
Back to documentation manual with formatting, revisions, updates, changes, etc.
Keeping busy… lots to do… life is good.
Dong Shin 06.08.2011
- re-ran the update query and found some missing updates….
- order of updates are important because foreign key constraint may fail!
- reworked User Management to retrieve roles data from the database, instead of using static data
- uploaded the latest PPM to FGMDEV for deploy – /exchange/PPM060811
Phil 6.8.11
7:30 – 4:30 VISIBILITY
- Heat warnings today. Think I’ll go for my ride early
- Cleaning up and documenting InfoObjectEvent – done
- Testing new PPM
- Deployed PPM on the new server. All seems to be running well.
- WRT our ‘problem’ server, I was able to talk to the lead technical person. It turns out that there is a proxy which is taking the packets and dumping them, because no one ever put our server in the plan. So the original request, not the firewall addendum was correct in the first place. Sigh. Anyway, it’s being worked.
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.

You must be logged in to post a comment.