Arindam Banerjee's picture

Code debugging and documentation

As the code is getting bigger in size, debugging and other changes are becoming tedious but the end result is satisfactory. Today I spent time to fix some bugs in code related to Array List holding pad details in PCB Modules data structure. I also need to make documentation for the whole architecture. I already have the basic architecture ready that I made in initial days but many things have been modified since then. So this time I need to add details as I keep on developing module by module.

Arindam Banerjee's picture

Partitioning of blocks

Now the data structure has sufficient information in proper format and I am working on partitioning of blocks. This partitioning would gradually reduce the congestion that leads to an optimal placement. Also the white space is considered for further routing.

This blog is moving

From this day forward, I'll be blogging on a developer's blog created by my mentor. Please continue to follow there:

Arindam Banerjee's picture

Working on block direction

Due to some unavoidable circumstances, yesterday I could not post blog. I am working on components directions in block placement. In pcb file the components directions are given as angle. As the components rotate, the angle changes from 0 to 90, 180, 270 etc. Now I need to use this information in block placement so that when a block would be rotated on board layout its position should be updated in the data structure.

Arindam Banerjee's picture

Still working on block placement

I am still working on block placement. I need to consider the fixed pads and connected nets so that even the blocks are moved, the pads will remain at their places. So I am concentrating on this issue because fixed pads play an important role in placement algorithm.

Building "retrieval components" repository on github

I built a repository for the retrieval component, mentioned in last blog entry.

Found the missing link

I found the missing link yesterday on my gdal_csharp.dll issue. There is a premake.lua build script that parses the Landis.Console-X.Y.exe.config configuration file and replaces the GDAL_CSHARP_VERSION variable with the current version of the GDAL library. I confirmed with Rob that we will package the widgets with the console application so I will need to update the build script to include my new forms project. The build script is written in .lua which I am not familiar with but it seems straightforward.

Also met with Rob yesterday to discuss the design of our first 2 widgets. I am mostly on the right track with functionality but the meeting was helpful.

I hope to hook the widgets into the existing codeline even if this means limited functionality. The other options are modifying the existing code a lot which I hesitate to do for fear of introducing bugs or creating a parallel codeline supporting the widgets which means 2x the maintenance down the line.

Landis uses Inno Setup to create the installer so I need to install and learn this tool.

Arindam Banerjee's picture

Fixed components block issue

Calculating the block size for each component from existing data structure was having some issues. Today I fixed the problem where block size would be calculated along with pad size. Now pad can be a circle or a rectangle. Size of rectangular pad can be calculated directly and size of circular pad would be calculated from its diameter. Hence the actual component and its pads will represent the complete block. Components of irregular shapes are also considered as a block so that it contains some necessary white space inside it for further routing.

The first period system is under testing

Almost complete the retrieval part, this part is under testing. Basically, it contains three parts: (1) receiver: get information from weibo's users and posts, (2) extractor: extract raw information from receiver to organize a formal data format. (3) writer: write to file or database.

Arindam Banerjee's picture

Placement algorithm and PCB data structure

Currently I am developing the placement algorithm and concentrating on basic placement of blocks rather than optimization and tuning. Once the basic placement would be finished, optimization part would be developed from it. While coding for the placement algorithm, I found some changes are needed in existing PCB data structure. Hence, at the same time I modified few parts of the existing data structure code so that it holds and represents exact data needed for placement functionality.

Syndicate content