Windows Application
Development...
User-mode application software occasionally closely interact with peripheral
devices such that extensive experience with hardware devices or device drivers
is critical for the quality of implementation of the Windows application.
Sometimes, this requires implementation of WIN32 DLLs, which allow access to
the device driver via IOCTLs for both WIN32 applications as well as from .NET
via PInvoke.
Other times, large amounts of data need to be DMAd directly between
a peripheral PCI Express device and the user-mode application memory space.
This requires deep understanding and control of both the PCI Express device's
DMA engine as well as of the internal working of Windows such as scatter-gather
lists, virtual page mappings, processor caching etc.
Regardless of the technical challenges, due to our more than 20
years with working with Windows and the related Peripheral Devices, we have the
expertise to properly and effectively implement your
user-mode application!
Click here for a free estimate on
your current or future project
Past Windows
application projects
-
Video over Wi-Fi application, firmware, device drivers on next
generation 802.11n MIMO chipsets. Designed Visual Basic .NET automation
application to automate the start/stop/post-processing of 802.11n 4x4 sniffer
captures of real-time Wi-Fi traffic data. UI widget development with Qt. Ported
Visual C++ applications built with Visual Studio 2005/2008 to Visual Studio
2010. Interfaced with WildPackets Omnipeek COM API to extract information out
of a live capture, parseed the 802.11n protocol data and support test
automation operations. Developed and implemented algorithms for 802.11n MIMO
PHY, Baseband and MAC firmware components. Technology: VB.NET/C/C++, 802.11n,
Environment: Visual Studio 2005/2008/2010.
-
Windows Mobile 6.0 direct show
filters and drivers. Hardware acceleration. Custom CETK tool to
test complete functionality of Audio, Camera, Camcorder & mobile TV
feature. Developed camera & camcorder application UI with custom features.
Direct show filter and driver module for multimedia application. Environment /
tools: C & C++, Microsoft platform builder, JTAG, QPST, QXDM.
-
2.5 Gbps x4 lane PCI Express Protocol Analyzer hardware and
software R&D described
here. An external active probe makes copies of the upstream and
downstream SERDES data which is sent to an Arria II GX FPGA. The FPGA byte
orders, descrambles and deskews the data before storing it in an external DDR2
SODIMM. The PC software then programs binary sequence detectors
in the hardware which then automatically detects the location of the PCI
Protocol Items in SODIMM. The PC software then uploads this meta-data and
builds an in-memory tree of the hierarchical protocol item data as it appears
on the bus. Data is uploaded on-demand via Virtual Tree control. Technology:
WinForms C# .NET 2.0, Environment: Visual Studio 2005.
-
Microsoft Platform Builder &
Client mobile platform development for Windows Mobile 6.0 /
Windows CE 6.0. Environment / tools: C & C++.
-
Windows and FreeBSD Client/Server
development. Multi-threaded Server via C++ on FreeBSD. Client GUI
via NetBeans IDE and JAVA. TCP/IP, UDP, IP and raw packet generation. Active
Directory via Kerberos 5. Secure communications via TLSv1 (Transport Layer
Security) protocol. Technology / tools: FreeBSD, Open Source Snort, IPC,
TCP/IP, UDP, IP, IDS/IPS, NetBeans, Java, Active Directory, TLSv1, QT Creator
and QT Designer.
-
Developed Windows GUI application
in Borland C++ Builder for test and control of unit in both
development and production (end user) environments. Developed RS232/RS485
interface for remote control of amplifier.
-
LS/FS/HS USB 2.0 Protocol Analyzer hardware and software
R&D described
here. The hardware utilizes a Cyclone II FPGA which receives USB link
data via an NXP ISP1505 ULPI-compliant USB PHY. The FPGA encodes the data
before it is buffered in an SDR SDRAM. The data is then sent to the Host PC via
a Cypress FX2LP USB Controller for further analysis. Technology: Winforms C#
.NET 2.0, Environment: Visual Studio 2005.
-
Win32/MFC PCI Explorer application described
here. The PCI Explorer application enables the user to graphically view
all the PCI devices and the buses they reside on accordingly to the actual
hierarchy of the various devices on the buses. The Configuration Space as well
as memory and I/O can be edited via the GUI. Technology: VB7, MFC, C++.
Environment: Visual Studio .NET 2003.
-
Financial services Fraud Alert
Management Middleware. C++, C#, and VB .Net GUIs. MS SQL Server.
MSMQ. XML, TinyXML, and TinyXpath. Windows Server 2003, Ubuntu Linux, and Red
Hat Enterprise Linux.
-
Windows based Flash Update Program
for IEEE 1394 Hard Disk Drives
-
Host software architecture for LSI professional video decoder.
The driver is based on the LSI DoMiNo multi stream, media processor and enables
simultaneous decoding and playback of two video streams, one of which might be
in a High Definition format. The application is based on an AVStream Windows XP
minidriver which communicates with the DoMiNO firmware over the host system PCI
bus. The AVStream driver is able to render video on the host system display
device or on an external monitor connected to the decoder over the video
output. The decoded video format includes various HD and SD frame sizes,
including progressive and interlaced PAL or NTSC.
-
Palm / iPhone Windows Mobile 6.1
Application Development for Palm Treo 800w / Treo Pro, iPhone
devices. Application and component development / porting. Custom software
applications for commercial touch screen devices & computers. Environment /
tools: C, C++, VS2005 & Platform Builder, iPhone, Windows Mobile 6.1.
-
Visual Basic 6 / Access database application that
schedules information for a custom disposable handheld PDA. Technology: VB6,
ADO, Access, SQL. Environment: Visual Basic 6, Access.
-
Development of a stock trading analysis system . Uses a
real-time data feed from the Island ECN (www.Island.com).
The data feed allows a number of SQL 2000 database servers to analyze the order
value and volume of all stocks traded in the Island ECN in real-time. The data
feed notifies the system as soon as an order is placed, executed or canceled in
the Island ECN. Currently several million orders are processed every day, this
generates about 1 GB data/day in the databases which in turn demands effective
processing of the data. Proprietary algorithms have been developed and
implemented as stored procedures that run in a SQL 2000 server cluster. Two
independent networks were used together with fail-over routers/gateways to
provide fail-safe networking. Technology: C++/VB, C#/.NET, SQL/T-SQL/Stored
procedures. Environment: The SQL server 2000 standard tools (Enterprise
manager, Profiler and Query analyzer).
-
Windows CE OS porting from
WinCE.NET 4.2 to 5.0 (macallan) for the SMDK2410 & OMAP730
platform. Environment / tools: C & C++, Windows CE 5.0, Microsoft platform
builder.
-
Assembler, Linker, Simulator and performance analyzer for the PINE Digital
Signal Processor. Design and development of software development
tools using Windows. Initial version of the simulator was ready 1 year before
the chip was available. The debugger kernel was entirely script driven. The
debugger shell translated GUI operations into script. The test script facility
allowed for exhaustive automated testing of the chip which greatly simplified
the process of regression testing.
-
Windows and Linux 2.4 GHz, wireless
Audience Response Network. TI MSP430 handheld transceivers, a
master transceiver, and USB HID to laptop transceivers. Laptops employ Windows
or UBUNTU Linux operating system. GUI front ends via applications, DLLs, and
shared libraries. IAR tools for TI MSP430, Visual Studio 2010 / MFC for
Windows, Code::Blocks / WxWidgets / WxForms for Linux.
-
Development of a WinAMP plug-in that
uses the Spatializer proprietary sound processing algorithms. A UI was created
that integrated with the Windows shell (notification tray integration with
pop-up menus) through which the sound processing algorithms could be adjusted.
Technology: MFC/WIN32/ C++. Environment: Visual Studio 6.0.
-
Military Vehicle Transmission
Control System SW design / implementation. The UML, OOA/OOD, MDD,
(Model Driven Development), MDA, (Model Driven Architecture), MBD, (Model Based
Development), development tool, is Rational Rhapsody for C++. Configuration
management is provided by Rational Synergy. The tool chain for the PowerPC
processor is the Wind River Diab compiler/linker, and the debugger/IDE is
Eclipse. Visual Studio 2008 is also used for development and testing of the PC
host version. A dialog based TCM simulator was developed to aid in quick mock
up of new shifting functions. Many communication protocols, including J1939.
-
Ported application from WinCE 4.2
to Windows Mobile 5.0 using VS2005 and Wireless Village Server.
Instant messaging, Presence & Group features. User Interface, Engine &
Network module. Environment / tools: C & C++, Microsoft Windows Mobile 5.0
Smartphone Emulator, Visual Studio 2005 BETA.
-
MFC/WIN32 application ("Virtual
Sound Processor 11") used to configure sound processing device drivers
. The UI was built using an MFC dialog application that hosted several custom
ActiveX components that were developed in C++/MFC. The Macromedia Flash player
control was also used for effects in the UI. A setup application was created
using InstallShield. A demo can be downloaded from
www.spatializer.com. Technology: MFC/WIN32/ C++. Environment: Visual
Studio 6.0.
-
WIN32 application programming. A Windows 2000
service was created that published data retrieved from a 3rd party
SDK into a Microsoft Active Directory database. Technology: LDAP, Active
directory, WIN32. Environment: Visual C++ 6.0, Windows 2000.
-
GPS navigation for a NASA space
vehicle. A radiation hardened BRE440 PowerPC utilizing the Nucleus
RTOS (Real Time Operating System) is used along with DIAB build tools. IBM
rational DOORS is used for requirements definition and management. IBM Rational
Rhapsody is used for OOA/OOD and UML drawings. IBM Rational ClearCase is used
for SCM (Software Configuration Management) and IBM Rational ClearQuest is the
CM (Change Management) tool used for SCR (Software Change Requests). IBM
Rational ClearCase Remote Client Unified Change Management (UCM) unifies
ClearCase and ClearQuest into one system for total CM control. VMC (Vehicle
Management Computer) to GPSR (Global Positioning System Receiver) communication
is provided by an HDLC channel with Manchester Encoding and an RS-422
interface. C and C++ are the programming languages. The firmware and software
will be certified to D0178-B standards.
-
ActiveX object hierarchy in C++/ATL 3.0. The COM components
were used from Visual basic/ASP to search for, retrieve and update information
in Microsoft's Active Directory databases. Uses advanced features of ATL3.0 to
implement Visual Basic collections etc. Technology: C++/ATL, ActiveX, COM, VB,
ASP, Environment: Visual InterDev 6.0, Visual Basic 6.0, IE 5.0, Windows 2000.
-
PC based voice recognition and text
to speech engine, for a command and control system. Visual C++ 6.0
using MFC is used to create the WIN32 program, that will be used as a basis for
a Bluetooth enabled portable computer. Also, a Bluetooth PC program that
operates a Sony Ericsson T68 cell phone, using an Infineon Class 1 Bluetooth
radio. Now, in the process of porting these Windows applications to Linux. The
target hardware is the ARM7.
-
Visual Basic 6.0 Application Development
that used the above mentioned ActiveX components. For instance was an
explorer-like tool implemented which allowed the user to graphically browse,
update and delete information in a Microsoft Active Directory server.
-
Pocket PC Development for NEC700,
Compaq PPC and X86 H/PC. Added Square screen and landscape
support, High DPI support, Pan and Zoom features to MS Reader MS-Reader for
Windows CE4.2 (all CPUs) and Pocket PC (2000, 20002 & 2003). Converted
existing applications and DLLs into ATL COM OCX control. Developed tool to
backup and restore the selected or all files, databases and registry settings
on any device running Windows® CE. Environment / tools: Pocket PC Emulator,
Windows CE 4.2, C, C++ & Microsoft Embedded VC++ 4.0.
-
Windows 2000 service. Used for, in a background task,
collecting information from Canon printers and copiers (status information etc)
and updating a directory server with the retrieved results. Written directly to
the WIN32 API in C++. Technology: C++/WIN32 Environment: Visual C++ 6.0,
Windows 2000.
-
Windows NT Network programming via Windows
sockets. Added network support in software that uploads data from
automobile computers, generates XML-files and sends the XML-files to a central
server for storage. Uses standard TCP/IP network for communication. Development
of a user interface for communication with the server. Development of WEB-based
presentation of data using Visual Interdev 6 and ASP. Technology: Delphi 4,
WIN32 and ASP. Environment: Windows 95/98/NT.
-
Embedded Firmware Keyless Entry
System & Replink Projects. System design, hardware specification
and block level design, DOS/Windows application development, serial
(direct/MODEM) interface and protocol development, Novell LAN development.
-
Windows CE 3.0 Application
Development. Multimedia player supporting real-time MP3 (fixed
point decoder) support using Microsoft DirectX 6.0, COM. Application to track
sales opportunities, leads, referrals, actual sales, price, cost, etc. Ticker
& Chart Control application for Digital Audio Broadcasting receiver,
Software package for a Digital Audio Broadcasting Station. Environment / tools:
x86, PPC & Custom device, Windows CE 3.0, C Embedded VC++ & Embedded
Visual Basic, Microsoft VC++ 6.0 with MFC and Microsoft TAPI.
-
ActiveX communication component for Windows NT/98. It was used
real time in a Visual Basic application to control an industrial computer via a
serial link. Implementation of a serial communication protocol of type Modbus.
The component was implemented in C++ using ATL 3.0 in Visual Studio.
Development of test applications in Visual Basic 6. Technology: C++, Visual
Basic, ATL 3.0, WIN32. Environment: Visual Basic 6.0, Visual C++ 6.0.
-
COM-components in C++/ATL and Visual Basic. Used to in
real-time stream data into a client/server system that handles real-time
analysis and display of streaming clinical data. Uses Microsoft DirectShow
technology. Technology: DirectShow, COM, ATL, IDL, WIN32. Environment: Visual
Studio, C++, VB
-
Development of a Windows CE application in
VB/C++ which was used for tracking time and expenses on Palm and
Handheld PCs. ActiveX components were developed in ATL. Database programming
via ADO on CE and PC platform. Synchronization of databases between the Windows
CE device and the desktop platform. Technology: C++/ATL, ActiveX, COM, VB,
Environment: Visual Basic, Visual C++, Windows CE 2.0.
-
16-bit application for Windows 3.1/3.11/95/NT which is the
user interface to an On-Line measuring equipment to measure parameters of paper
quality in a paper-processing machine. Direct WIN16 programming in C.
Implementation of an HTTP-server using Windows sockets for communication over
TCP/IP-network. Creation of Implementation of On-Line help using RTF-files and
Microsoft Help Compiler. Creation of an Installation program using
Installshield. Technologies: WIN16, C. Environment: Borland C/C++,
InstallShield.
-
Windows application used for remotely controlling a satellite receiver.
Channels could be scanned for, stored and be brought back for later viewing.
The position of the satellite dish could be remotely controlled by the Windows
application, which enabled the application to automatically search for new
satellite channels without user intervention. Stored channels could, after an
automatic search, be sequentially previewed for a number a seconds. Printing
support was included which enabled lists of channel information, satellite
position and other relevant information to be presented on paper. The
application was a 16 bits object oriented C++ application developed with
Microsoft Foundation Classes (MFC) using Visual C++. Technology: MFC, Visual
C++, 16-bits application components (VBX's). Context sensitive On-Line help.
Installation program (Installshield).
-
Windows CE WIN32 application development
for an embedded medical device. Low-level Windows CE system programming of
flash memories, Real time clock and other system functions. Technology:
Microsoft Windows CE 2.0. Environment: Microsoft Windows CE Embedded Toolkit,
C++.
-
Logic Analyzer targeted to run in MS-DOS. The application was
used as the interface for a logic analyzer, which sampled data from a
microprocessor system. The communication with the sampling hardware took place
via a parallel ISA interface board. Functions for disassembling sampled data
(Motorola 6800 format) and for searching for data pattern as well as trigging
sampling at predefined data pattern were implemented. Technology: MS-DOS,
Borland Pascal.
-
ASP-based WEB site. Built on NT4/IIS4 using Visual Interdev 6.0.
Design/Implementation of various COM components in ATL/C++. Design and
implementation of the SQL server database for the WEB site. ADO was used for
the data access. Technology: ASP, COM, ATL, SQL, and WIN32. Environment: Visual
Interdev 6.0, Visual C++ 6.0.
-
802.11 Wireless LAN, Bluetooth,
software testing, software engineering, database, SAN and storage systems, PERL
programming, security programming, MBA software development process management,
MBA software CMM case study, MBA computer database concepts, VxWorks embedded
programming workshop, SQA automation tools workshop WinRunner and Silktest, and
UNIX system administration. Technology/Environment: 802.11 Wireless LAN,
Bluetooth, SAN, PERL, SQA, UNIX.
-
ActiveX object hierarchy in C++/ATL 3.0. The COM components
were used from Visual basic/ASP to search for, retrieve and update information
in Microsoft's Active Directory databases. Uses advanced features of ATL3.0 to
implement Visual Basic collections etc. Technology: C++/ATL, ActiveX, COM, VB,
ASP, Environment: Visual InterDev 6.0, Visual Basic 6.0, IE 5.0, Windows 2000.
-
ActiveX/ATL. Design and development
of ActiveX-components used for displaying barcodes and some additional
information in WEB-pages. Technology: ActiveX, COM, ASP, Environment: Visual
C++ 6.0, Visual Basic 6.0, IE 4.0.
-
Uncompressed video streams from digital camera to computer RAM memory in 30
frames/s, 24-bit color and 640x480. Device driver programming
using video frame grabber hardware, process uncompressed video images in AVI
format, transmit uncompressed video streams over ATM network in TCP/IP socket.
MPEG and JPEG encode and decode, Microsoft ActiveMovie (DirectShow) SDK in
Visual C++ MFC.
-
Performance tuning and optimization of
large-scale database applications on PentiumPro servers. Use TPC
series benchmark tools to measure application performance, configuration of
various chip setups on Windows NT and MS SQL Server. Compare and analyze
different server configurations from 1 to 4-processor systems. Run 1 to 10
query streams against a validation database of 100MB size and run the atomicity
and consistency tests.
-
Application porting and optimization of a taxi-driver
license examination software based on LAN environment. Successfully
port it from the original 16-bit Windows and Novell NetWare platform to all
32-bit Windows NT based on a 166MHz Pentium Pro server system. Implement in
SYBASE 10 for Windows NT and PowerBuilder. Improve the performance from 10 to
12 minutes to generate exam questions for 50 simultaneous users to less than 5
minutes in the new system after using performance improvement techniques
tailored to PentiumPro server architecture.
-
OpenGL display lists on Windows NT, then
play them back at 60 fields per second on a dedicated video mixing system.
Windows 3.11 Scientific Software development. Design and development of PC application for MS Windows 3.11 of a data analysis system for field-portable Gas Chromatograph/Mass Spectrometer instrument that collects and analyses hazardous air pollutants. Individual areas of responsibility include: DLL architecture implementation; command protocol design and development; real-time acquisition module employing Windows Socket 1.1 API; development of GUI Method Editor application employing lex- and yacc-like tools; design and implementation of data manager for saving/restoring mass spectra over time, and providing API so external processes are able to access the data, both in PC/Windows and on Inficon/OS-9000 embedded system.
-
Multimedia authoring tool based on Windows for Workgroup 3.11.
Implement using Object-Oriented design on MS Visual C++.
-
Computer Output Laser Disc document
storage and retrieval systems. Optical Storage, LAN, RDBMS
(Informix), on Windows, DOS, OS/2, AS400, RS6000/AIX platforms. Development
environment was C, C++, ESQL/C, Pascal, and Delphi.
-
ASP/VBScript/JavaScript. Design and
development of an advanced WEB application used to online print barcode data
retrieved from SQL Server 7.0. Use of Design time controls and of the above
mentioned ActiveX component. Server and client side scripting. Technology:
ActiveX, COM, ASP, Environment: Visual InterDev 6.0, Visual Basic 6.0, IE 4.0,
Windows NT.
-
Developed application and software tools in C,
SQL database, Microsoft Visual FoxPro, management information
systems design and development, IBM AS/400 programming.
x86 ASM and C/C++ Application Development. Development and testing of spreadsheet application for fully integrated application program. Coded in x86 assembler and C/C++ as system moved from MS-DOS to MS-Windows 3.0, UNIX System V, and early OS/2.
-
Multi-threaded X Windows server for Windows NT.
This product included built-in clients and produced better performance and
compliance scores than its top competitor. It was Intergraph's first
shrink-wrapped product from its system software division, and the company's
pilot project for its ISO9000 program.
-
Development of a multi-tasking DOS kernel for a multi channel
add on IBM( PC card for Point Of Sale systems. The development evolution
included the design and implementation of a real time multitasking operating
system, implementation of LAN data link protocol (LLC IEEE 802.2) over Ethernet
and Token Ring physical layers, the IBM SDLC protocol, proprietary inter
network protocol for communication over a telephone lines, and a fast backup
communication protocol. In addition, the project contained the development of
the card device driver and a LAN application on the host PC as well as the
development of a file manager which operates in the background (implemented as
a TSR ) under the DOS operating system.
-
X Windows displays on UNIX-based graphics platforms,
including a direct-rendering library that increased the speed of graphics
primitives up to 400%.
|