Broccoli Products has 15 years of experience developing software applications.
Our clients include public-service power and water distribution installations, the defense and para-military sector, flight planning and avionic system developers, and scientific research laboratories.
Our primary Windows development tool is Microsoft Visual Studio, using C# or C++, and .NET
4.0 or MFC libraries. These are common tools that the client can use themselves to read and modify code. We also track the development of our code using an integrated version management tool,
and employ Test Driven Development techniques to development neighboring
test units.
Software is delivered with an installation program that automatically downloads updates as they are ready,
either by disk or from the Internet.
Our scope of software development is broad, and includes the following:
System-level software includes
low-level protocols, background
services, and
component objects.
Low-level protocols are invented by hardware companies to allow communication with their hardware. For example the manufacturers of an information display module in a car will have their own rules for how testing and programming equipment should communicate with that module. These protocols are private and need to be coded into an application or a library.
An example of a low level protocol is
RTMP, and our
RTMPClient library.
Background services are applications without an interface that run as background tasks, providing a variety of functions including monitoring ports, waiting for a specific hardware item to be plugged in, and processing requests for data. The server side of a distributed application is often written as a background service.
As mentioned above, some services be simple wrappers for
WCF (Windows Communication Foundation), providing database access for websites and client applications.
Component objects (COM) are small libraries that other applications can interact with. COM objects extend the abilities of an application. For example, a COM object that processes credit card payments can be made available to an HTML server, allowing the website to take VISA payments. Or a COM object that understands an in-house messaging format for surface weather data can be made available to an Exchange Server, allowing surface weather data to be sent and received as email.
Embedded software is software that is programmed into a microchip on a circuit board. By embedding software into a microchip, a level of miniaturization and portability can be achieved
above that offered by PC systems. And because the embedded software is the only application running on the microchip, there is no competition for processor time, and the performance of the software is predictable. Development of Embedded systems is not expensive, and production is scalable.
Unlike 8-bit systems, 32-bit microcontrollers require support chips, including external memory used during execution, memory to hold the software when the system is powered down, and regulators to supply a range of voltages. 32-bit systems are usually built on 4 or 8 track PCB circuit board to allow for the smallest possible size of product.
The dedicated speed and the width of the memory-bus make 32-bit micro-processors very powerful devices. They can support touch-screen monitors, SD and Flash memory cards, MP3 decoders, keyboards and mice, and connections to TCP-IP networks and external hard-disks. They can also act as USB hosts and devices, given them plug-and-play features.
Code development for 32-bit systems is in Assembly, C and C++, using 32-bit ARM-based micro-processors running at speeds up to 200MHz.
Linux and Windows CE (a thin version of Windows) can both be installed on 32-bit systems. Windows applications written using the .NET libraries can be ported to run on a Windows CE platform.
Our targets for smartphone and tablet software development are Android 3 and Microsoft Phone 7.
Use the contact form to send comments and requests for information to Broccoli Products.