Software Development

Home » Portfolio » Custom Software Development Portfolio

Custom Software Development Portfolio

Project overview:

Customer is an USA-based company which provides automotive components to an OEM auto manufacturer.

The project’s goals were to develop an application that would read a flat file containing build requirements, filter data based on configured parameters, sequence and reorder data, and output to a separate file. The output file would then be sent to a third party EDI provider (via FTP) for conversion into an 866 EDI file and then deposited in a tier 2 supplier’s EDI mailbox.

The output from this application allows the tier 2 supplier to supply its commodities in reverse sequence VIN order to the customer. This allows on hand inventories to be reduced at the customer’s location.

Technologies: ASP.NET 2.0, C#

 


 

Project overview:

We created custom PC software applications for a large transportation OEM that were used to program Electronic Control Modules (ECMs) on vehicle and perform device configuration / calibration during production on the assembly line. The applications communicated with multiple controllers on a single vehicle via serial and CAN network communications and interfaced to peripheral equipment, such as barcode readers. The applications were designed to allow for rapid changes by engineering for programming / calibration and provided application user interface that guided the plant floor operators through programming and calibration production operations.

Technologies: Visual Basic, ActiveX, COM, JScript, Visual C++

Communications: J1939 CAN, serial communications via RS-232 protocol

 


 

Project overview:

The customer is a large multi-national corporation.  The Electrical Tester system was designed to interface with CANbus-based controller modules using J1939 and CANOpen protocols.  The system leads the operator through the test process via a series of “action” prompts (e.g. “Engage Brake Pedal”) and verifying module parameter values as required, e.g. Check Software Revision codes for correct level, fault codes are clear, voltage greater than X volts. Temperature between X and Y degrees, encoder counts between X and Y counts. Prompts are answered by interacting with the screen, or barcode scan.

Each Test Point records its results into a production database, for later access.

Key values are also stored for traceability purposes:

  • Module Software Revision,
  • Serial Number.

These values are collected by:

  • Direct communication with modules,
  • Operator barcode scan.

The system automatically determines the necessary parts to scan, and prompts the operator accordingly.  As product passes through the Test Points, previous Test Point results are verified and enforced, e.g. the job cannot run through a Test Point without having successful results at all previous Test Points.

Web pages provide system configuration and production reports.

Completed products trigger data exchange with corporate MRP system, to provide the collected Trace Data.

Technologies:

  • Microsoft .NET Framework,
  • Microsoft ASP.NET Framework,
  • Microsoft Internet Information Server,
  • Microsoft SQL Server.

 


 

Project overview:

We developed a reusable software component architecture for a large transportation OEM to minimize the amount of custom development required for engineering, manufacturing and service applications. The customer was then able to utilize this common set of software components to build and extend their systems more quickly and with less complexity.

Technologies: C++, COM, C# .NET, Jscript, VBScript, Windows 7, Vista, XP, Windows CE, Windows Mobile

Communications: J1939 CAN

 


 

Project overview:

We assisted in the development of an automated verification test system for a Large Automotive Supplier that utilized sets of test scripts (code) to validate ECU firmware for vehicle systems produced by the supplier for several major automotive OEMs.

The projects included the development of module specific test scripts (code written in C/C++) to simulate vehicular inputs for a series of vehicle ECUs. These scripts were used to validate the firmware contained within the ECUs, vehicle communications and included both operational and diagnostic modules within the ECU.

Technologies: C/C++,Multi-Threaded Win32

Communications: CAN, J1850, other Automotive Vehicle Protocols

 


 

Project overview:

A manufacturing customer is using our MES solution to error proof their assembly process.  They use SAP for inventory tracking and billing.  At the pack out area, they want to automatically back flush to the SAP system information about assemblies that are produced or scrapped, as well as the components that were consumed in the assembly process.  They also want to have BOM changes in the SAP system be automatically reflected in the MES system.  This will reduce delays in information transfer between the systems, as well as reduce the amount of information that has to be transferred manually by personnel.

To achieve these goals, a combination of software programs, Sql Agent Jobs, and stored procedures are used.  There are two working tables, one for incoming BOM changes from SAP, and another for outgoing back flush information from the MES system. A Sql Agent Job monitors the table for BOM changes, applies them, and sends an email to Line Support personnel.  The email informs them that changes were made, and includes a list of additional configuration changes that must be performed to complete the BOM update.

When parts are packed out and the shipping container is filled, information regarding the assemblies is written to the back flush tables.  Finally, a software program is run that watches for BOM changes in SAP, and transfers the information to the tables in Sql Server.  The same software program looks for new back flush information and transfers it to SAP.

Technologies: C#, Microsoft .NET Framework, Microsoft SQL Server

 


 

Project overview:

We developed a custom application for a large Industrial Automation OEM that combined functionality from existing engineering and end user tools, included diagnostics, measurement and reporting functionality, using the latest Microsoft technologies. This newly developed C# application was designed to communicate with Programmable Logic Controllers manufactured by the OEM, using a standard software communication library provided by the OEM. For future use, the application was also designed so that it could be used as a component of other software applications.

Technologies: C#/.NET Framework 4.0, WPF/XAML, The MVVM design pattern, .NET Interop with legacy DLLs ,C++ and MFC, VB.NET and Windows Forms

Communications: Common Industrial Protocol (CIP)

 


 

Project overview:

We developed a testing framework involving multiple vehicle networks for a large Automotive OEM. The framework was performance-tuned to process high network traffic loads in real-time. Multiple simultaneous connections on multiple protocols and networks were supported. The framework was written in Visual C++, with heavy usage of STL to meet the performance requirements. It was tested using a custom-built test suite and tools to demonstrate 100% code testing coverage to the OEM.

Technologies: C++, STL

Communications: CAN, J1850, Serial

 


 

Project overview:

We developed a framework of ActiveX/COM based components for CAN/J1939 based development for a large Transportation OEM. The framework included tools for configuring, testing, programing, and modeling the memory state of various vehicle controllers. The framework was written in Visual C++, with heavy usage of STL, Boost/Spirit and libxml. The software was developed as a living framework that relies on a continuously updated test suite that stays in sync with the current state of the softwaredev. The framework was designed to run on multiple platforms – Win32, Win64, and WinCE.

Technologies: ActiveX, COM, STL, Boost, Spirit, libxml, Win32, Win64, WinCE

Communications: CAN, J1939

 


 

Project overview:

We developed software for a LED display system OEM that allowed displaying parts of Win32 desktop display surface on an LED sign, so that existing Win32 software could drive LED signs directly. The software included a Windows kernel-mode device driver to control the LED sign firmware, a Win32 mirroring display driver to capture the Win32 desktop, and configuration / testing utilities.
Utilities were developed using Visual Studio C++ and the Kernel Driver was developed in C language using the Win32 DDK

Technologies: C++, Win32, Win32 DDK