首页 > 代码库 > Tutorial – Kithara RTS

Tutorial – Kithara RTS

Tutorial

The Kithara ?RealTime Suite? (KRTS) is a real-time extension for Windows, which currently contains more than 20 different functional modules.

Basic structure of the ?RealTime Suite?

In this tutorial, we try to explain every functional aspect, from starting with a simple program until the more complex features.

Although the ?RealTime Suite? comes in form of a custom driver with a user-defined name in most cases, we call it in this tutorial KrtsDemo like the test version you can request on our download page (we will contact you before sending the software).

The following tutorial pages show special aspects of the ?RealTime Suite?:

Basic Functions

  • “Hello real-time world!” — The First Project

  • How to do the error handling

  • Creating threads and how they are prioritized

How to get to the kernel-mode / real-time context
  • Introduction to the Kernel Mode

  • How to create and debug a kernel DLL for the real-time context

Creating resources
  • What you need to know about Shared Memory

  • Using Pipes for easy and secure data exchange

  • Synchronization with events

  • Synchronization with QuickMutex objects

  • How and where to create which callbacks

The Difference Between 32-bit and 64-bit Windows
  • 32-bit and 64-bit Windows, drivers/kernels, applications and DLLs

  • What does "KiK64" (Kithara32-in-Kithara64) do and existing restrictions

Considering Different Programming Languages
  • Circumstances and special requirements for C#.NET in the ?RealTime Suite?

Real-time Timers, Multi-Tasking & Dedicated

  • Setting up timers for real-time

  • How to setup CPUs for the Dedicated Mode?

  • Programming with multiple tasks (priorities, semaphores, multiple CPU cores)

Communication

  • High-speed Ethernet with real-time drivers (TCP, UDP)

  • Use cases of the Virtual Network Adapter and Windows connections

  • Serial communication with the UART API

  • Accessing USB devices

  • Processing CAN messages in real-time

  • Processing LIN messages in real-time

Automation

  • Real-time automation with the EtherCAT Master

  • The EtherCAT state machine

  • How to do PDO mapping and PDO assignment

  • Hot-plugging EtherCAT slaves

  • EtherCAT with Distributed Clocks (DC) and synchronized with PC timers

  • How to speed-up EtherCAT initialization

  • Using an EtherCAT Slave Device

  • EtherCAT Automation Protocol (EAP)

  • A CANopen Master for control applications

  • PLC applications according to IEC 61131-3

Image Processing

  • Real-time GigE Vision image acquisition and processing with the Camera module

  • Vision with Halcon

Hardware Access

  • How to look for devices and change drivers

  • Accessing digital and analog I/O boards with the MultiFunction module

  • Preallocation of physical memory

Libraries

  • Real-time signal processing with the SigProc module

Other modules (under construction)

  • Scanning for PCI devices (what address/IRQ has my PCI hardware?)

  • Access to I/O ports

  • Using internal or external physical memory

  • Interrupt handling on PCI/PCIe cards

  • How to write your own multifunction driver dll

  • How to write your own hardware driver for the ?RealTime Suite?

  • Serial communication on RS232/RS485

  • Creating "virtual COM ports"

  • Different ways of external events into your code

You did not find an answer to your question? Please ask our technical support!