Navigationslinks überspringen.
h/p/cosmos coscom
h/p/cosmos coscom v1 / v2
Documentation
h/p/cosmos coscom.dll for coscom v2
h/p/cosmos coscom v3
New features
Downloads
h/p/cosmos .NET Objects for coscom v3
h/p/cosmos .NET Controls for coscom v3

coscom v4

 


h/p/cosmos® coscom® v4

treadmills & ergometers interface communication protocol

Basic Remote Service

Created for:

h/p/cosmos sports & medical gmbh

Am Sportplatz 8
DE 83365 Nussdorf-Traunstein
Germany
phone + 49 86 69 86 42 0 fax + 49 86 69 86 42 49
email@hpcosmos.com
www.hpcosmos.com
Authors:
M. Sc. Andreas Feil,
Altotec Hard- und Software GmbH Altofing 7, 83367 Petting / Germany
Franz Harrer, CEO & President h/p/cosmos sports & medical gmbh
Am Sportplatz 8, DE 83365 Nussdorf-Traunstein

published: www.coscom.org article #: cos100115v4 date: 2020-03-13

© Copyright 2020 h/p/cosmos sports & medical gmbh

As a contribution to h/p/cosmos' efforts for development and updating the coscom protocol, all users of the coscom protocol and coscom features are obliged to list the name and company logo h/p/cosmos® and the copyright of h/p/cosmos® in their software menu and their user/operation manual on a well visible position.

[1] UserTerminals and Micro-Controller-Units MCU1 up to MCU6



The various MCU (MicroControllerUnit) generations of the h/p/cosmos devices, such as treadmills, bicycle and ladder ergometers:

Figure 1: MCU1, built from 1988…1991

order # MCU1: MCU1 order # UserTerminal: interface: no external interface

coscom: no

firmware update: in factory only

Figure 2: MCU2, built from 1991 … 2001 order # MCU2 PCB: cos255a0225 order # UserTerminal: cos10498 interface: RS232 COM1

coscom: v1 and v2

firmware update: via EPROM

Figure 3: MCU3, built from 1996 … 2001

order # MCU3 PCB:

order # UserTerminal:

interface: 2 x RS232 COM1 and COM2 coscom: v2

firmware update: via RS232 upload



Figure 4: UserTerminal with MCU4 built from 1997 … 2007

article # UserTerminal MCU4: cos00098110046 article # MCU4 PCB: cos25500000336

interface: 2 x RS232 COM1 and COM2

coscom: v2 and v3

firmware update: via EPROM

Figure 5: UserTerminal with MCU5 built from 2007 … 2021

article # UserTerminal MCU5: cos100060 article # MCU5 PCB: cos13745-03tm

interface: 4 x RS232 COM1, COM2, COM3, COM4 (option)

coscom: v2 (terminated in 2019) and v3 and v4 firmware update: via RS232 upload via para control 4.1

Checking the firmware version can be done either via coscom v3 or on the UserTerminal display of the treadmill (or through h/p/cosmos para control software and interface, in case there is no display on the treadmill:
1) After the machine is powered on, the display shows the Firmware version. or

2) When activating the user OPTION 05, the display also shows the Firmware version.

display:

shows:

speed

HPTM (TM = treadmill), or

HPLE (LE = ladder ergometer

time

type

index

1.7 = example for device code in Optional settings (see nameplate)

distance

MCU5, or

MCU4

elevation

1.06.4

(example for firmware version)

heart

rate

1.7

(default device code based on firmware, which should match

the device code on the type plate

of the treadmill)

For clarification a short table of available coscom versions on different MCU versions:

MCU2

MCU 3

MCU 4

MCU 5

MCU 6

coscom v1

x

X

coscom v2

x

coscom v3

4.04.5 or higher

x

coscom v4

1.08.3.0083 and higher

x

MCU4 Firmware updates are available at h/p/cosmos headquarter through EPROM replacement. From MCU5 (built from November 2007 approx.) the h/p/cosmos treadmills have been equipped then with MCU5 where the firmware can be updated via RS232 interface. Please send an email to service@hpcosmos.com with the serial number of the treadmill based on the type plate and check the installed firmware version (will also be shown on the treadmill display for a few seconds after powering on the machine) and ask for details in case of any queries.

Figure 6: UserTerminal MCU6 and

TouchScreen

Figure 7: MCU6:

Figure 8: SBC PC:

UserTerminal with MCU6

GUI Graphic User Interface

Windows 10 OS

10.1” TouchScreen

built from 2019 …

article # UserTerminal MCU6: cos101000 article # MCU6 PCB: cos101010-01

article # SBS PC: cos101000i

interface: 1 x RS232 COM1, NFC, RFID, USB, LAN, BlueTooth via USB stick,

WiFi via USB stick

coscom: v4 (no more other protocols!)

firmware update: via USB memory stick

The main components of the GUI UserTerminal are the MCU6 sensor actor board and the SBC single board computer with Windows 10, featured by a 10.1” TouchScreen and number of peripheral devices.

[2] Overview

h/p/cosmos coscom v4 defines an interface for basic device control. At the moment, the protocol is designed for five different device types (not all are available on the market right now):
- h/p/cosmos running machines (treadmill ergometers)
- h/p/cosmos ladder ergometers
- h/p/cosmos ergometers
- h/p/cosmos steppers
- h/p/cosmos cross trainers

The interface consists of one device which currently has one service (index 0). The service has several actions and variables with which the device can be controlled. In future, there could be an update which can add new services if necessary.

Device

Service

•Actions

•Variables

Future services...

The protocol has a general request – response design. External software is always allowed to send a request but must wait for the corresponding answer before sending the next request (only one message can be pending). For active control see chapter safety considerations.
In order to get actual variable values, you can either query the latest value of a variable (so called polling) or get an automatic event message, when the variable value changes (see chapter eventing).
h/p/cosmos coscom v4 uses serial interface for communication. In order to distinguish between version 3 the baud rate is changed to 19200.

[3] Basic message format

h/p/cosmos coscom v4 is a UTF-8 based protocol. Every message starts with “*” followed by a
character which indicates the message type:

· “*A” indicates an action request or response. Parameters are described with “*I” for input parameters followed by a parameter index and “:” as delimiter for the parameter value. Output parameters follow the same scheme but with character “O”. Example request:

*A0s0*I0:<FirstParameterValue>*I1:<SecondParameterValue>*Y0:8D*Z

· “*Q” followed by a variable index indicates a variable query request or response:

o Request example for variable with index 0 on service index 0:

*Q0s0*Y0:4E*Z

o Response example for a variable with index 0 on service index 0:

*Q0s0:<CurrentValue>*Y0:E2*Z

o Querying variables which are not supported by current device type will result in an error response.

· “*E” indicates an event message. For further information see chapter “eventing”.

· “*R” is a special response message this is sent when a wrong checksum was detected. See chapter error messages for details.

After the “main” character follows the service index “s” + index of service. Currently there is only one
service defined, so this will always be “s0”. A coscom v4 device will accept messages where no service index is defined (missing “s0”). If this is the case a default service index of 0 is assumed. A device is also allowed to send messages with missing “s0” service index.
Every h/p/cosmos coscom v4 message ends with the checksum extension followed by “*Z”.
The “*” character is reserved as protocol delimiter therefore any “*” in an argument or variable value must be escaped with “*X”. Example: If you want to send a message with “RequestControl” action which contains a “*” character, you would have to escape it:

*A3s0*I0:My own text with a *X character*Y0:09*Z

h/p/cosmos coscom v4 defines a max. message length for incoming requests (external software to device) of 64 bytes and a max message length of 250 bytes for outgoing message.

[4] Checksum extension

Every coscom v4 message must use the checksum extension. This is necessary because of RS232 support, where no data link layer exists.

request example: *A2s4*I0:2*I1:3*I2:0*Y0:73*Z

response example: *A2s4*Y0:44*Z

The calculation of the checksum is done by getting all UTF-8 bytes for the characters starting by the first ‘*’ character of the message and ending before the message end “*Z”. The bytes have to be added and computed modulo 256. The hexadecimal representation of the result is the actual checksum.

[5] Error messages

A h/p/cosmos device waits till it receives a “*Z” indicating that a whole coscom message was
received. If this part of the message is disturbed the external software will run in a timeout.
If a h/p/cosmos device detects a “*Z” it parses the checksum of the received message. If no
checksum is attached or an invalid checksum is detected it will send a general error response

*R1*F0:<ErrorNumber>*R1:<ErrorText>*Y0:84*Z. The error description

(*F1:Errortext”) is optional and can be left out.

If an h/p/cosmos device detects a wrong parameter (e. g. speed out of range) in an otherwise correct message it will send an error response message to the external software. An error message starts with the same Indices as the request but is followed by a “*F0:”, an error number, “*F1:” and an
error description. An example looks like this: *A0s0*F0:123*F1:ErrorText*Y0:38*Z
The error description (“*F1:ErrorText”) is optional an can be left out.

[6] Eventing

For getting variable changes you can either use polling method be querying the current variable values. This is according to the general request -response design of the protocol. If you want to get automatic messages of the device, if variable values change, you can use so called eventing. This an extension of the protocol where the device sends messages without an explicit request. You can use action “SetEventMask” to control which variables should send automatic changes (default after switching device on: all off).
RS232 does not allow for discovering connection change therefore event mask could be set to any value when you are connecting. A precursor could have set it according to his needs. Best practice is to set event mask at connecting time to your needs (if you don’t want any events, set all off.)
A service publishes changes to its variables by sending so called event messages. These messages contain the indices of one or more variables and the current value of those variables. There can be more than one value in a single event message, if more variables change at the same time.
An initial event message is sent when subscription changes by “SetEventMask”. This event message contains the indices and values for all evented variables and allows the subscriber to initialize its model of the state of the service.
Event messages are tagged with an event key, which has one digit. The event key for a subscription is initialized to 0 when the device sends the initial event message. For each subsequent event message, the device increments the event key for a subscription, and includes that updated key in the event message. Event keys handle overflow and wrap the event key from 9 back to 1 (not 0). Subscribers must also handle this special case when the next event key is not an increment of the previous key.
To repair an event subscription, e.g., if a subscriber has missed one or more event messages, a subscriber must re-subscribe by invoking “SetEventMask” again. By doing so, the subscriber will get a new initial event message, and a new event key.

Following the general event syntax (for better reading the elements are put in separate lines):

*Eevent keysservice index

*Vvariable index:variable value

other variables and their values go here, if any

*Y0:xx*Z

An actual example message with event key 1 and two variable updates (Index 0 and 1) of service 0
would look like this:

*E1s0*V0:<value1>*V1:<value2>*Y0:A9*Z

[7] Safety considerations

One goal was making h/p/cosmos coscom v4 more secure. h/p/cosmos coscom v3 has several safety features. But not all of them were mandatory. Over the last years regulations for medical devices have become more severe. In order to meet these concerns h/p/cosmos has changed some safety features and made them mandatory. Following the basic safety procedure of h/p/cosmos coscom v4 will be described.

[7A] GetDeviceInformation

In order to check if a h/p/cosmos coscom v4 device is present, you must use action “GetDeviceInformation”. You will get device type, the variant (distinguish between treadmill, ladder ergometer, bicycle and stepper), serial number and firmware version of the connected device.

[7B] Request control – fail-safe and stop state

An external device can send a h/p/cosmos coscom v4 message at any time. But before actively controlling the device by changing any load (speed, elevation, power, start or stop command) you first must request control allowance by using action “RequestControl”. With MCU6 devices this can be done anytime, MCU5 devices must be in mode selection state. After invoking this action, the user will see a message on the user terminal (if device hardware supports displaying text) where he must
confirm external control allowance. If he accepts, variable “ControlAllowed” will change to “Allowed”
if he declines the request, “NotAllowed” will be set. While the request is shown “RequestPending” will be set. If it’s a device without terminal, the message will not be shown and control will be granted immediately.
You can only actively control the device when “ControlAllowed” is set. Control is then generally allowed as long as control state “stopped” or “pause” is reached. This could be by pressing the stop button on the terminal, a failsafe, an error or sending stop action on coscom v4.
If the device supports control state “pause” external control will also be revoked and the external software would have to request control again. This “pause” state is optional and depending on the actual device. “Pause” cannot be achieved due external command. Sending the “Stop” action will set control state to “stop”.

Figure 9: Example of request control on MCU 6

If variable “ControlAllowed” changes to “NotAllowed” external software must cancel current control
profile. In order to start controlling again, you have to repeat requesting control.
While external control is allowed, using Failsafe for detecting communication loss is mandatory. You have to invoke action “SetFailsafe” within every second while controlling the device. If the device does not receive the message within one second, the device will stop and control will be revoked.
This concept ensures that a stop state of the device is “detected” (by getting an error response to an active control request) by external software even if variable “ControlState” is not monitored.
For a small state chart see variable “ControlAllowed”.

[8] Feature Matrix

h/p/cosmos coscom v4 is designed to meet different device types. But not all device types support all defined actions and variables. Following matrix will address this issue:

Action/Device type

Treadmill

Ergometer

Ladder

Cross trainer

Stepper

GetDeviceInformation

x

x

x

x

x

SetEventMask

x

x

x

x

x

RequestControl

x

x

x

x

x

ResetFailsafe*

x

x

x

x

x

SetSpeed*

x

x

GetSpeedRange

x

x

GetAccelDecelRange

x

x

HoldSpeed*

x

x

SetElevation*

x

SetElevationWithSpeed*

x

GetElevationRange

x

HoldElevation*

x

SetPower*

x

x

x

SetTorque*

x

x

x

SetCadence*

x

x

Start*

x

x

x

x

x

Stop*

x

x

x

x

x

SetPersonData*

x

x

x

x

x

GetPersonData

x

x

x

x

x

ResetCounterValues*

x

x

x

x

x

Beep*

x

x

x

x

x

* Using this action without external control permission will result in an

error response (see chapter “Safety considerations”).

Variable/Device type

Treadmill

Ergometer

Ladder

Cross trainer

Stepper

ControlStatus (Index: 0)

x

x

x

x

x

ControlAllowed (Index: 1)

x

x

x

x

x

ActualSpeed (Index: 2)

x

x

x

TargetSpeed (Index: 3)

x

x

x

ActualElevation (Index: 4)

x

TargetElevation (Index: 5)

x

ActualPower (Index: 6)

x

x

x

x

x

TargetPower (Index: 7)

x

x

x

ActualTorque (Index: 18)

x

x

TargetTorque (Index: 19)

x

x

EnergyConsumption (Index: 8)

x

x

x

x

x

MET (Index: 9)

x

x

x

x

x

Time (Index: 10)

x

x

x

x

x

Distance (Index: 11)

x

x

x

x

ActualCadence (Index: 12)

x

x

TargetCadence (Index: 21)

x

x

Height (Index: 13)

x

x

x

HeartRate (Index: 14)

x

x

x

x

x

RRInterval (Index: 15)

x

x

x

x

x

Errors (Index: 16)

x

x

x

x

x

StepHeight (Index: 20)

x

x

[9] Actions

Following you will find a short description with syntax sample of every coscom v4 action of basic remote service.

Note: If no other description is given, values are defined as floating point values expected with max. six decimal places and maximal value +/- 1.000.000. Integer values are defined as signed 32-bit values. String values max.

[9A] GetDeviceInformation

(Action index: 0) Gets basic device information for detecting if a h/p/cosmos coscom v4 device is available.

Parameters:

- DeviceType (direction out - index 0, max. length: 64 characters ):

e. g. urn:schemas-coscom-org:device:LadderErgometer:1

If returned device type is “urn:schemas-coscom-org:device:MCU5coscomV4:1” restrictions

described in section “MCU5 legacy device” apply.

- Variant (direction out- index 1, digit): Number that indicates the actual variant type.

Possible Values:

o 0 = Treadmill Ergometer

o 1= Ladder

o 2 = Cross trainer

o 3 = Stepper

o 4 = Bicycle Ergometer

- Serial Number (direction out – index 2, max. length: 50 characters): serial number string

- FirmwareVersion (direction out – index 3, max. length: 11 characters): Current

firmware version

Syntax sample request: *A0s0*Y0:3E*Z

Syntax sample response: *A0s0*O0:urn:schemas-coscom- org:device:MCU6coscomV4:1*O1:1*O2:cos30007-01va06-0003*O3:1.0.0001*Y0:8A*Z

[9B] SetEventMask

(Action index: 1) As described in chapter “eventing” with this method it is possible to enable or disable automatic value change transmission of the device. After switching on the device all events are disabled. Changing the event mask will lead to new initial events and new event index in the event messages (see chapter “eventing”).

Parameters

- EventMask (direction in – index 0): a string consisting of 0 and 1 indicating if eventing for specific variables should be turned on. The position in the string determines the variable index. For example, the string 100101 enables eventing for variables with indices 0, 2 and 5. Leading 0 can be left out. The string starts with the highest variable index and ends with index 0. For variable indices see chapter variables. For variable indices which are not supported in the current device type changes to event mask will have no effect.

Syntax sample request: *A1s0*I0:1001*Y0:DE*Z

Syntax sample response: *A1s0*Y0:3F*Z

[9C] RequestControl

(Action index: 2) With this action external control can be requested. It must be done before actively controlling the device. For further information on controlling the device see chapter “Safety considerations”. With MCU6 this action can be invoked anytime. MCU5 devices must be in selection or pause state. Otherwise MCU5 will send an error response.

Parameters

- Message (direction in – index 0, max. length: 45 characters): a string which will be shown to the user when he should accept external control. Because of different hardware types it is

not guaranteed that the message is shown to the user. If no message should be shown, enter an empty string (request: *A2s0*I0:*Y0:1D*Z)

Syntax sample request: *A2s0*I0:external software name wants to control*Y0:3D*Z

Syntax sample response: *A2s0*Y0:40*Z

[9D] ResetFailsafe

(Action index: 3) This action must be invoked regularly within 1 second while external control is allowed. For more information see chapter “Safety considerations”. If the action is invoked when controlling is not allowed an error response will be sent back from the device (see chapter “error messages”).

Parameters

No parameters defined

Syntax sample request: *A3s0*Y0:41*Z

Syntax sample response: *A3s0*Y0:41*Z

[9E] SetSpeed

(Action index: 4) With this action you can set a new speed with given acceleration. Using this action without external control permission will result in an error response (see chapter “Safety considerations”). If speed or acceleration parameter is out of range, an error response will be sent.

Parameters

- Speed (direction in - index 0): The new target speed in m/s.

- Acceleration (direction in – index 1): The acceleration to be used with this command in m/s².

Syntax sample request (speed: 1.3 m/s, acceleration 0.2 m/s²):

*A4s0*I0:1.30*I1:0.20*Y0:7F*Z

Syntax sample response: *A4s0*Y0:42*Z

[9F] GetSpeedRange

(Action index: 5) Returns the current speed range of the device. The range can vary from its base value if it is additionally limited in the option settings of the device.

Parameters

- MinimalSpeed (direction out - index 0): Current minimal speed in m/s.

- MaximalSpeed (direction out – index 1): Current maximal speed in m/s.

Syntax sample request: *A5s0*Y0:43*Z

Syntax sample response (min 0 m/s, max 6.11 m/s): *A5s0*O0:0.00*O1:6.11*Y0:8E*Z

[9G] GetAccelDecelRange

(Action index: 6) Returns the current acceleration/deceleration range of the device. The range can vary from its base value if it is additionally limited in the option settings of the device.

Parameters

- MinAcceleration (direction out - index 0): Current minimal acceleration/deceleration in m/s².

- MaxAcceleration (direction out – index 1): Current maximal acceleration/deceleration in m/s².

Syntax sample request: *A6s0*Y0:44*Z

Syntax sample response (min 0.1 m/s², max: 0.6 m/s²): *A6s0*O0:0.10*O1:0.60*Y0:8E*Z

[9H] HoldSpeed

(Action index: 7) Can be used to hold the current speed at a constant level. Using this action without external control permission will result in an error response (see chapter “Safety considerations”).

Parameters

No parameters defined

Syntax sample request: *A7s0*Y0:45*Z

Syntax sample response: *A7s0*Y0:45*Z

[9I] SetElevation

(Action index: 8) With this action you can set a new elevation. Using this action without external control permission will result in an error response (see chapter “Safety considerations”). If elevation parameter is out of range, an error response will be sent.

Parameters

- Elevation (direction in - index 0): The new target elevation in %.

Syntax sample request (elevation: 3.3 %): *A8s0*I0:3.30*Y0:E7*Z

Syntax sample response: *A8s0*Y0:46*Z

[9J] SetElevationWithSpeed

(Action index: 18) With this action you can set a new elevation with optional elevation speed. Using this action without external control permission will result in an error response (see chapter “Safety considerations”). If elevation parameter is out of range, an error response will be sent.

Parameters

- Elevation (direction in - index 0): The new target elevation in %.

- ElevationSpeed (direction in – index 1): The elevation speed to be used with this command in °/s. If the device does not support elevation speed, this parameter will be ignored. To use the default elevation speed, set this parameter to 0.

Syntax sample request (elevation: 3.3 %, speed: default):

*A18s0*I0:3.30*I1:0*Y0:26*Z

Syntax sample response: *A18s0*Y0:77*Z

[9K] GetElevationRange

(Action index: 9) Returns the current elevation range of the device. The range can vary from its base value if it is additionally limited in the option settings of the device.

Parameters

- MinimalElevation (direction out - index 0): Current minimal elevation in %.

- MaximalElevation (direction out – index 1): Current maximal elevation in %.

Syntax sample request: *A9s0*Y0:47*Z

Syntax sample response (min: 0 %, max: 22 %): *A9s0*O0:0.00*O1:22.00*Y0:BE*Z

[9L] HoldElevation

(Action index: 10) Can be used to hold the current elevation at a constant level. Using this action without external control permission will result in an error response (see chapter “Safety considerations”).

Parameters

No parameters defined

Syntax sample request: *A10s0*Y0:6F*Z

Syntax sample response: *A10s0*Y0:6F*Z

[9M] SetPower

(Action index: 11) Can be used to set a new target power. Using this action without external control

permission will result in an error response (see chapter “Safety considerations”).

Parameters

- Power (direction in - index 0, integer): New target power in watts.

Syntax sample request: *A11s0*I0:50*Y0:B2*Z

Syntax sample response: *A11s0*Y0:70*Z

[9N] SetTorque

(Action index: 16) Can be used to set a new target torque. Using this action without external control

permission will result in an error response (see chapter “Safety considerations”).

Parameters

- Torque (direction in - index 0): New target torque in nm.

Syntax sample request: *A16s0*I0:6.50*Y0:1B*Z

Syntax sample response: *A16s0*Y0:75*Z

[9O] SetCadence

(Action index: 17) Can be used to set a new target cadence. Using this action without external control permission will result in an error response (see chapter “Safety considerations”).

Parameters

- Cadence (direction in - index 0, integer): New target cadence in rpm.

Syntax sample request: *A17s0*I0:80*Y0:BB*Z

Syntax sample response: *A17s0*Y0:76*Z

[9P] Start

(Action index: 12) Starts external control mode. Using this action without external control permission will result in an error response (see chapter “Safety considerations”). In order to start external control after getting permission you can either set a new target value (speed, elevation or power) or use this action to only switch or start the mode and not changing current target values. This can be helpful if you want to switch from a running device mode (e. g. cardio) to external control without setting a new target right now.

Parameters

No parameters defined

Syntax sample request: *A12s0*Y0:71*Z

Syntax sample response: *A12s0*Y0:71*Z

[9Q] Stop

(Action index: 13) Stops external control mode and the device. Using this action without external control permission will result in an error response (see chapter “Safety considerations). “ControlAllowed” will be revoked after using this action.

Parameters

No parameters defined

Syntax sample request: *A13s0*Y0:72*Z

Syntax sample response: *A13s0*Y0:72*Z

[9R] SetPersonData

(Action index: 14) Sets the current person data of the individual that is using the device. These values will affect energy consumption calculation and cardio default values. Using this action without external control permission will result in an error response (see chapter “Safety considerations”).

Parameters

- Gender (direction in - index 0): ‘F’ = Female, ‘M’ = Male.

- Age (direction in - index 1, integer): age in years (1-150)

- Height (direction in - index 2, integer): 1 – 300 cm

- Weight (direction in – index 3): 1-300 kg

Syntax sample request (male, 26 years, 176 cm, 73 kg):

*A14s0*I0:M*I1:26*I2:176*I3:73*Y0:AA*Z

Syntax sample response: *A14s0*Y0:73*Z

[9S] GetPersonData

(Action index: 20) Gets the current person data of the individual that is using the device. Parameters

- Gender (direction out - index 0): ‘F’ = Female, ‘M’ = Male.

- Age (direction out - index 1, integer): age in years (1-150)

- Height (direction out - index 2, integer): 1 – 300 cm

- Weight (direction out – index 3): 1-300 kg

Syntax sample request: *A20s0*Y0:70*Z

Syntax sample response (male, 26 years, 176 cm, 73 kg):

*A20s0*O0:M*O1:26*O2:176*O3:73*Y0:BF*Z

[9T] ResetCounterValues

(Action index: 15) Resets current parameters like time, distance, energy consumption, height. After using this action these parameters will be set to 0 but continue counting. Using this action without external control permission will result in an error response (see chapter “Safety considerations”).

Parameters

No parameters defined

Syntax sample request: *A15s0*Y0:74*Z

Syntax sample response: *A15s0*Y0:74*Z

[9U] Beep

(Action index: 19) Gives external software a change to acoustical warn the user of load changes. You should use this action in order to warn users before changing any load. Using this action without external control permission will result in an error response (see chapter “Safety considerations”).

Parameters

- Duration (direction in – index 0, integer): Beep time in 1/100 seconds (0 to 2.55 s).

Syntax sample request: *A19s0*I0:100*Y0:E6*Z

Syntax sample response: *A19s0*Y0:78*Z

[10] Variables

h/p/cosmos coscom v4 defines one service with following variables:

Note: If no other description is given, values are defined as floating point values expected with max. two decimal places and maximal value +/- 1.000.000. Integer values are defined as signed 32-bit values. String values max.

[10A] ControlStatus

(Variable index: 0) Independent from which mode (Quickstart, Profile, Cardio, Extern, Test) is running this variable indicates the current control state. Possible values are:

0 = Stop (device is somewhere in menu)

1 = EmergencyStop

2 = Run

3 = Pause

Pause is defined as running belt and time counting is stopped. This can be achieved following:

- MCU5: Pressing the “-“ button or setting speed to 0 km/h till running belt is stopped in all modes except stepper profile, test profile mode and external control over coscom v4.

- MCU6: Pressing the “Stop” button while in running mode. This will switch in the summary screen which is interpreted as a pause before control is finally stopped or continued.

E-Stop

E-stop or quick stop at anytime

Stop

Back to main menu, standby or Error

Pause

Run

Figure 10: Control states of MCU6 device without active external control

Syntax sample query request: *Q0s0*Y0:4E*Z

Syntax sample query response (Run state): *Q0s0:1*Y0:B9*Z

[10B] ControlAllowed

(Variable index: 1) Value that indicates if external control is allowed right now. Possible values are:

· 0 = Allowed (control can be done by external software)

· 1 = RequestPending (User has yet to decide if external software is allowed)

· 2 = NotAllowed (control is not allowed)

E-Stop

(NotAllowed))

E-stop or quick stop at anytime

Stop

(NotAllowed)

Start workout

Stop

Run

(NotAllowed)

Continue workout

Pause

(NotAllowed)

Run

(Allowed)

Figure 11: ControlAllowed

Syntax sample query request: *Q1s0*Y0:4F*Z

Syntax sample query response (request pending): *Q1s0:1*Y0:BA*Z

[10C] ActualSpeed

(Variable index: 2) Gets the current speed value in m/s.

Syntax sample query request: *Q2s0*Y0:50*Z

Syntax sample query response: *Q2s0:2.10*Y0:4B*Z

[10D] TargetSpeed

(Variable index: 3) Gets the target speed value in m/s.

Syntax sample query request: *Q3s0*Y0:51*Z

Syntax sample query response: *Q3s0:3.50*Y0:51*Z

[10E] ActualElevation

(Variable index: 4) Gets the current elevation value in %.

Syntax sample query request: *Q4s0*Y0:52*Z

Syntax sample query response: *Q4s0:3.50*Y0:52*Z

[10F] TargetElevation

(Variable index: 5) Gets the target elevation value in %.

Syntax sample query request: *Q5s0*Y0:53*Z

Syntax sample query response: *Q5s0:5.20*Y0:52*Z

[10G] ActualPower

(Variable index: 6, integer) Gets the current power value in watts.

Syntax sample query request: *Q6s0*Y0:54*Z

Syntax sample query response: *Q6s0:125*Y0:26*Z

[10H] TargetPower

(Variable index: 7, integer) Gets the target power value in watts.

Syntax sample query request: *Q7s0*Y0:55*Z

Syntax sample query response: *Q7s0:175*Y0:2C*Z

[10I] ActualTorque

(Variable index: 18) Gets the current torque value in nm.

Syntax sample query request: *Q18s0*Y0:87*Z

Syntax sample query response: *Q18s0:6.30*Y0:88*Z

[10J] TargetTorque

(Variable index: 19) Gets the target torque value in nm.

Syntax sample query request: *Q19s0*Y0:88*Z

Syntax sample query response: *Q19s0:6.50*Y0:8B*Z

[10K] EnergyConsumption

(Variable index: 8) Gets the energy consumption of this workout in kj.

Syntax sample query request: *Q8s0*Y0:56*Z

Syntax sample query response: *Q8s0:213.23*Y0:B9*Z

[10L] MET

(Variable index: 9) Gets the current MET (metabolic equivalent) value of this workout.

Syntax sample query request: *Q9s0*Y0:57*Z

Syntax sample query response: *Q9s0:85*Y0:FE*Z

[10M] Time

(Variable index: 10, integer) Gets the current workout time in seconds.

Syntax sample query request: *Q10s0*Y0:7F*Z

Syntax sample query response: *Q10s0:600*Y0:4F*Z

[10N] Distance

(Variable index: 11) Gets the current distance value of this workout in meters.

Syntax sample query request: *Q11s0*Y0:80*Z

Syntax sample query response: *Q11s0:10.25*Y0:B0*Z

[10O] ActualCadence

(Variable index: 12, integer) Gets the current rotation frequency (RPM = rounds per minute).

Syntax sample query request: *Q12s0*Y0:81*Z

Syntax sample query response: *Q12s0:80*Y0:23*Z

[10P] Height

(Variable index: 13) Gets the current positive altitude difference in meters which has been gathered in this workout. In case of treadmill a negative value can be achieved if running direction is changed to backwards running.

Syntax sample query request: *Q13s0*Y0:82*Z

Syntax sample query response: *Q13s0:235*Y0:56*Z

[10Q] HeartRate

(Variable index: 14, integer) Gets the current heart rate value of the test person. If no heart rate is detected value will be 0.

Syntax sample query request: *Q14s0*Y0:83*Z

Syntax sample query response: *Q14s0:140*Y0:52*Z

[10R] RRInterval

(Variable index: 15, integer) Gets the latest RR-interval (beat-to-beat interval of the heart rate). This variable should be monitored using events in order to get all value changes. If RR-interval is not known (not supported or no heart rate available) the value will be 0.

Syntax sample query request: *Q15s0*Y0:84*Z

Syntax sample query response: *Q15s0:862*Y0:5E*Z

[10S] Errors

(Variable index: 16, semicolon separated list of errors) Gets the current error and service notes values of the device. If no error or service note is active, string will be empty. Errors start with “E” followed by three digits. Service notes start with “S” again followed by three digits e .g “E153” or “S102”. Errors are defined in the user manual of the device.

Syntax sample query request: *Q16s0*Y0:85*Z

Syntax sample query response (errors 100 and 303): *Q16s0:E100;E303*Y0:AB*Z

[10T] StepHeight

(Variable index: 20) Gets the current step height in mm.

Syntax sample query request: *Q20s0*Y0:80*Z

Syntax sample query response: *Q20s0:203*Y0:4F*Z

[10U] TargetCadence

(Variable index: 21, integer) Gets the target rotation frequency (RPM = rounds per minute).

Syntax sample query request: *Q21s0*Y0:81*Z

Syntax sample query response: *Q21s0:80*Y0:23*Z

[11] Error Codes

coscom v4 defines following error codes:

Code

Description

111

Internal error prevents external command (like no

connection to Frequency inverter)

112

Existing error prevents external command (device has some active error, see

device manual for possible

errors)

123

Invalid Protocol parameter

(e. g. missing parameter in action message)

133

External command is not allowed. See chapter

Request control for further information

134

Elevation system is not referenced yet

950

Wrong or missing checksum

999

Function not supported by current device. This could

happen when using a

function not supported for this device type (see chapter feature matrix).

[12] MCU5 legacy device

h/p/cosmos introduced coscom v4 with the MCU6 device family in 2018. Older devices with MCU5 can be updated (firmware version 1.08.3.0083 and higher) to use coscom v4 with some small limitations. As MCU5 devices do have some display limitations it is not possible to show user specific message when requesting control. Additional MCU5 devices will behave a little different regarding control status (see variable) and request control (see action).

[13] MCU5 coscom v4 Implementation Notes

This section of the document describes the implementation of the coscom v4 in the MCU 5 firmware. The MCU 5 firmware implements only the device type “Treadmill” in the current version (1.08.3.0083 and higher).

Communication settings

The coscom v4 protocol uses a serial link according the RS-232 standard (19200, 8, n, 1). The MCU 5
makes the coscom v4 protocol available on port COM1 with the setting 24 in option 20:

[ 24] [COSC][OM 4]

How to access to user options of MCU 5?

All User Options of MCU5 can be found in the IFU Operation and Service Manual: https://www.hpcosmos.com/sites/default/files/uploads/documents/manuals/20161130_cos14310m5-v1.08hpc-en_instructions_for_use_h-p-cosmos_treadmills.pdf section 5.11: Optional settings: User Options, pages 76 … 82.
Manual for para control 4.1 software:
https://www.hpcosmos.com/sites/default/files/uploads/documents/20110711_cos10071-v4.0man-en_manual_h-p-cosmos_para_control_4.0_1.pdf

Control requester

The coscom v4 specification defines a procedure and the action “RequestControl” to get the
allowance to control the treadmill.
This is a special additional safety feature in order to re-confirm on the keyboard of the UserTerminal, that the patient or subject is ready now and that the running belt may start now. This procedure shall avoid that the treadmill belt will start (initiated by a command from external device like PC, ECG, metabolic cart, etc.) while the patient or subject is not ready yet.

The action “RequestControl” has the argument “Message”, which can be displayed to retrieve the control decision from the user. The MCU 5 firmware ignores this argument and always displays the following message:

[PrES][S St][Art ] [For ][EXt ][CtrL]

meaning. “press start for external control”

If this message is not answered by a key press within

10 seconds, then the message disappears and control requests are not allowed. The same happens, if a key is pressed other than the Start key.

After the confirmation with the Start key and before the first control command the display shows the following text:

[WAIt][ ][ ]

[For ][Ext.][CtrL]

After the control command “Start” or “SetSpeed” the

text disappears and the device enters the manual mode. The event variable “ControlAllowed” notifies the external device about the control allowance status. The MCU 5 firmware uses the values “Allowed”, “ControlAllowed“ and “NotAllowed“. The

value “TemporaryNotAllowed” is not possible with the MCU 5 firmware, because there is no applicable state in the MCU 5 user interface model.

Devices without UserTerminal (treadmill variant LT, which have no keyboard and no display):

There is a special treadmill variant (LT) without a display head and without keyboard (UserTerminal).
This treadmill can only be operated and controlled via a remote interface connection to a PC, ECG or something similar.
With this configuration it would not be possible to confirm an external control request with a key, because there are no displays and no keys on such treadmills.
Therefore a special setting to “auto-confirm” this request is necessary:

MCU5 treadmill:

Admin-Option 15 of the treadmill:

0 = Confirmation with key “Start”
1 = Auto- Confirmation (LT variant, without UserTerminal = without display and keyboard)

How to access the admin options of MCU 5?

Ask h/p/cosmos service department: service@hpcosmos.com

h/p/cosmos – coscom v4 Basic Remote Service

All Administrator Options of MCU5 can be found in the IFU Operation and Service Manual: https://www.hpcosmos.com/sites/default/files/uploads/documents/manuals/20161130_cos14310m5-v1.08hpc-en_instructions_for_use_h-p-cosmos_treadmills.pdf  section 10: Optional settings: administrator options, pages 148 … 158.

MCU6 treadmill:

If manufacturer option “311 - Equipment Display” is set to “no” request control will immediately be allowed without confirmation of the user

Safety and Validation

For treadmills without UserTerminal or for configurations where the “auto-confirm” setting (Admin
OP 15 parameter 1) is activated, the host device manufacturer (ECG, CPET, PC-software, etc.) has to manage the risks to avoid unexpected starts and dangerous situations by means of appropriate and validated procedures.
Such a procedure could be an additional warning, request and confirmation in the host control software.


Figure 12: Example for “request control” confirmation:  

CAUTION! The treadmill will start now! Make sure the patient / subject holds the
handrails and is ready for start to walk or run.
Use chest belt and safety arch for fall prevention
for all medical applications and where a fall would cause high risks to the patient / subject.

Next to the required technical tests and validation a quality assurance and regulatory affairs agreement shall be signed and implemented between the manufacturers of the treadmill and host devices such as ECG, CPET, PC-Software, etc. in order to be in compliance with MDD, MDR, Risk Management ISO 14971 and EN 62304 Software Lifecycle Processes. Example: http://www.coscom.org/coscom_v4/20190409_cos100115-v4_hpcosmos_coscom_v4_quality_assurance_agreement_regulatory_affairs_en62304_en14971_sample.pdf

Pause / Run and stopped belt

There are two different states in the MCU 5 firmware with a stopped belt:
1. The belt is stopped, the display shows [PAUS] and the time is freezed.
coscom v4 ControlStatus = 3 = Pause
2. The belt is stopped, the display shows [ 0.0] and the time is running. coscom v4 ControlStatus = 2 = Run

Without coscom v4 control

If the speed is decreased to the value 0 either by pressing the key MINUS, another control task or an external communication protocol command, then
Case 1. (Pause) happens in the following situations:
• Manual, Profile or Cardio mode is active
• Test mode is active and test is not covered by case 2.
Case 2. (Run) happens in the following situations:
• Test profile Stepper
• Other test profiles except user test profiles Bruce, Naughton, Balke, Ellestad and test profiles 70 and higher

With coscom v4 control

If the value of the status variable ControlAllowed is “Allowed” only case 2 happens independent of the reason how the speed is set to the value 0. At the same time the control status changes from “Allowed” to “NotAllowed”.
The control status can be changed back to “Allowed” if a new “RequestControl” is sent.

Important: the control status can only be changed back to “Allowed” while the belt is stopped!

Anomalies

Some actions and variables are not fully implemented as the specification defines. These are listed here:

Action SetElevationWithSpeed

The action ignores the argument “ElevationSpeed”, because the MCU 5 hardware cannot control the speed of the elevation mechanism. Otherwise the behaviour of the action is like the action “SetElevation”.

Variable Height

The variable “Height” is not available in the MCU 5 firmware version, because it would be generating a lot of computation load for an 8-bit microcontroller (integral, sine…).

[14] Interface cable

In order to connect your pc to a MCU 5 running machine you must use an interface cable which is wired like in following picture:

(h/p/cosmos order # cos00097010034)
For further information visit https://www.hpcosmos.com/en/products/supplies-options/interface- connection-cable-rs232-5m
USB RS232 converter / adapter:
If the PC / Laptop computer has no RS232 interface, use a compatible USB-RS232 converter
(h/p/cosmos order # cos12769-01)
https://www.hpcosmos.com/en/products/supplies-options/usb-rs232-interface-adapter

[15] Extending h/p/cosmos coscom v4

If you want to extend coscom v4 with vendor specific extensions (new actions or variables) this must be placed in an extra service. In order to avoid collisions, the indices are assigned by h/p/cosmos. Please contact: andreas.feil@hpcosmos.com

[16] Updates, downloads, simulators, regulatory affairs and publications

See website: http://www.coscom.org
Quality Assurance Agreements and Regulatory Affairs Agreements must be agreed among all parties involved. As h/p/cosmos at service@hpcosmos.com for a single page draft agreement.
© Copyright 2020 h/p/cosmos sports & medical gmbh
E & OE.
Errors and Omissions Excepted.
Subject to alterations without prior notice.

Attachment:

h/p/cosmos – coscom v4 Basic Remote Service

How to access to admin options of MCU 5?

Ask h/p/cosmos service department: service@hpcosmos.com
a) Download h/p/cosmos para control 4.1 PC software and install on an PC or Laptop:
https://www.hpcosmos.com/sites/default/files/uploads/documents/20190124_hpcosmos_para_control_4_1_full_setup_en.zip
b) Connect the PC or Laptop computer to COM 3 (service port) of the h/p/cosmos treadmill via
RS232 interface cable (h/p/cosmos order # cos00097010034)



If the PC / Laptop computer has no RS232 interface, use a compatible USB-RS232 converter
(h/p/cosmos order # cos12769-01)
USB - RS232 converter must have Chipset FTDI / FT232RL and Full Duplex Interface!
https://www.hpcosmos.com/en/products/supplies-options/usb-rs232-interface-adapter
c) Enter “access code” for admin options:

If you are software developer please contact service@hpcosmos.com and ask for the admin access code.

This access code is confidential and must not be disclosed to normal customers and/ or operators of the devices for safety reasons.

All Administrator Options of MCU5 can be found in the IFU Operation and Service Manual: https://www.hpcosmos.com/sites/default/files/uploads/documents/manuals/20161130_cos14310m5-v1.08hpc-en_instructions_for_use_h-p-cosmos_treadmills.pdf section 10: Optional settings: administrator options, pages 148 … 158.
Manual for para control 4.1 software:
https://www.hpcosmos.com/sites/default/files/uploads/documents/20110711_cos10071-v4.0man-en_manual_h-p-cosmos_para_control_4.0_1.pdf

Warning! The administrator options are only accessible by h/p/cosmos staff and authorized service engineers. Changing an administrator option might cause serious problems if you are not familiar with all the details. Therefore, the h/p/cosmos service has to be contacted before doing any changes in the administrator options.

Forwarding the access code to unauthorized persons is prohibited.

confidential, for internal use only

Comparison of some interface protocol features, performance and safety standard.

Schnittstellenprotokoll-Vergleich einiger Funktionen, Leistungsdaten und Sicherheitsstandards.

features and functions

h/p/cosmos® coscom® v3

h/p/cosmos® coscom® v4

Trackmaster (TMX 425, 28/03/2003)

baudrate

9600 or 115200 bps

9600 oder 115200 bps

19200 bps

19200 bps

4800 bps

4800 bps

Encoding

Zeichencodierung

UTF-8

UTF-8

UTF-8

UTF-8

Mixture of binary and ASCII

Mischung aus binär und ASCII

message length

Nachrichtenlänge

Variable, but longer than Trackmaster, since more parameters are possible in one message.

Variabel aber länger als Trackmaster, da mehrere

Parameter in einer Nachricht möglich sind.

Variable, but longer than Trackmaster, since more parameters are possible in one message.

Variabel aber länger als Trackmaster, da mehrere

Parameter in einer Nachricht möglich sind.

Variable, but max. 5 bytes. Limitation to functional code and one parameter.

Variabel aber max. 5 Bytes. Beschränkung auf

Funktionscode und einen Parameter.

scope of functions

Funktionsumfang

Great scope of functions (speed and elevation control, acceleration levels, failsafe, heart rate,

optional functions, profiles, displays, beeper, etc.)

Großer Funktionsumfang (Geschwindigkeits- und Steigungsverstellung, Beschleunigungsstufen, Failsafe, Herzfrequenz, Optionen, Profile, Displays, Beeper, usw…)

Reduced but more clearly structured scope of functions compared to coscom v3 (speed and

elevation control, acceleration levels, failsafe, heart rate, beeper, etc.). Also supports other types like bicycle ergometers.

Reduzierter aber übersichtlicherer Funktionsumfang (Geschwindigkeits- und Steigungsverstellung, Beschleunigungsstufen, Failsafe, Herzfrequenz, Beeper, usw…). Unterstützt auch andere Typen wie Fahrradergometer

Basically speed and elevation control and failsafe. A few other commands exist, but are not executed,

at least at the TMX 425 treadmill model.

Im Wesentlichen Speed und Elevation Control und Failsafe. Ein paar andere Befehle existieren, werden aber nicht ausgeführt -zumindest bei TMX

425 Laufband.

resolution for elevation

Auflösung Steigungswinkel

can be set to 0.1 % resolution

auf 0.1 % genau

can be set to 0.1 % resolution

auf 0.1 % genau

can be set to 0.5 % resolution

auf 0.5 % genau

Messages

Benachrichtigungen

Device sends status changes on request.

Geräte verschickt auf Wunsch Statusänderungen.

Device sends status changes on request.

Geräte verschickt auf Wunsch Statusänderungen.

Status changes always have to be requested

(polling).

Statusänderungen müssen immer abgefragt

(gepollt) werden.

Acknowledgements

Acknowledgements

Positive and negative (error messages)

Positiv und negativ (Fehlernachrichten)

Positive and negative (error messages)

Positiv und negativ (Fehlernachrichten)

No negative replies (error messages);

only positive acknowledgements Keine Fehlerantworten (nur positive Acknowledgements)

confidential, for internal use only

features and functions

h/p/cosmos® coscom® v3

h/p/cosmos® coscom® v4

Trackmaster (TMX 425, 28/03/2003)

Failsafe

Failsafe

Optional. Setting variable (recommendation 1 second). Expiry is detectable via request.

Optional. Einstellung variabel (Empfehlung 1

Sekunde). Ablauf kann über Abfrage festgestellt werden.

Mandatory. Using action for active control required. Expiry is detectable via request. For passive control

(read only) no failsafe is needed.

Zwingend: Verwendung für aktive Steuerung vorgeschrieben. Ablauf kann über Action festgestellt werden. Für passive Steuerung (lesend) ist kein Failsafe notwendig.

Optional possible. Presetting 0.5 seconds (latest

MCU5 implementation: 2 seconds). Expiry is not transmitted.

Optional möglich. Vorgabe 0.5 Sekunden (aktuelle MCU5 Implementierung zwei Sekunden). Ablauf wird nicht übermittelt.

Checksum

Optional. A message checksum can be activated

Optional. Eine Prüfsumme für Nachrichten kann eingeschaltet werden.

Mandatory. A message checksum must be used.

Zwingend: Die Verwendung der Prüfsumme für

Nachrichten ist vorgeschrieben.

No actual checksum. Echo of received commands optionally possible.

Keine Prüfsumme. Echo von empfangenen

Kommandos optional möglich.

Request control

Not available

Nicht verfügbar

Active external control must request control before sending new commands like setting speed value.

Auto-confirm see chapter „control requester“

Aktive externe Steuerungen müssen um Erlaubnis fragen, bevor extern gesteuert werden kann. Auto- confirm – siehe Kapitel „control requester“

Not available.

Nicht verfügbar.

IEC 62304 / ISO 14971

Can be implemented in own projects.

Kann in eigenen Projekten implementiert werden.

Can be implemented in own projects.

Kann in eigenen Projekten implementiert werden.

unknown

unbekannt

free DLL download and publication

available on www.coscom.org

with valuable controls and objects erhältlich auf www.coscom.org

Not available yet, but coming soon.

Zurzeit noch nicht verfügbar, aber bald.

unknown

unbekannt

Firmware update and programming functions and features for treadmill MCU MicroControllerUnit

MCU5

no

firmware update via USB

no

free Windows PC software

for remote control and maintenance kostenlose PC Software für Fernsteuerung und Wartung

para control 4.1 https://www.hpcosmos.com/en/products/software

para control 6 is under development

unknown

confidential, for internal use only

Summary:

1. The h/p/cosmos coscom v4 is an enhancement to coscom v3 especially in terms of safety.

2. coscom v4 is much more simple in it’s architecture compared to coscom v3, because all special features (like firmware update and programming features) remain in coscom v3.

3. It significantly reduces the needed documentation and training time.

4. Important standards / norms like EN 62304 Software Lifecycle Processes for medical devices and ISO 14971 Risk Management can be achieved in your projects with coscom v3 and coscom v4.

5. The coscom .net objects for coscom v3 are a great help for programmers to implement sophisticated functions with minor effort.

6. coscom v3 allow the use of the free PC software para control, so the treadmills and ergometers can be remote controlled and programmed via external PC or laptop and also important features like firmware update, error diagnostics, resets, etc can be performed via the external h/p/cosmos Windows software para control.

7. All h/p/cosmos and h/p/cosmos OEM treadmills with MCU5 from manufacturing date 2019 are equipped with coscom v3 and additionally with coscom v4.

8. Update your ECG, VO2max and CPET devices and other equipment and software to coscom v4 in time, because due to MDR regulatory affairs and technology reasons all new MCU6

UserTerminals with TouchScreen launched from the year 2020 for treadmills and ergometers will not have coscom v3 and Trackmaster or other protocols included any more, but only coscom v4.

Zusammenfassung:

1. Das h/p/cosmos coscom v4 ist eine konsequente Weiterentwicklung von coscom v3 speziell in Punkto Sicherheit.

2. coscom v4 ist viel einfacher in der Architektur im Vergleich zu coscom v3, weil alle speziellen Funktionen (wie z.B. Firmware update und Programmierfunktionen) in coscom v3 verbleiben.

3. Es reduziert den Dokumentationsumfang und die Einarbeitungszeit erheblich.

4. Einhaltung wichtiger Normen wie EN62304 Software Lebenszyklus Prozesse für Medizinprodukte und Risikomanagement nach EN14971 sind mit coscom v3 und coscom v4 in ihren Projekten möglich.

5. Die coscom .net objects für coscom v3 sind eine grosse Hilfe für Programmierer um moderne Funktionen ohne grossen Aufwand zu implementieren.

6. coscom v3 ermöglichen die Nutzung der kostenlose PC Software para control, mit der Laufbänder und Ergometer über externen PC oder Laptop ferngesteuert und programmiert werden können und weitere wichtige Funktionen wie Firmware Updates, Fehlerdiagnose, Resets, etc, über diese externe Windows Software para control ermöglichen.

7. Alle h/p/cosmos und h/p/cosmos OEM Laufbänder mit MCU5 ab Baujahr 2019 sind sowohl mit coscom v3 als auch zusätzlich mit coscom v4 ausgestattet.

8. Updaten Sie Ihre EKGs, VO2max und CPET Systeme sowie andere Geräte und Software zeitnahe auf coscom v4, weil aufgrund MDR und Regulatorischen Anforderungen sowie aus technologischen Gründen alle neuen MCU6 UserTerminals mit TouchScreen produziert ab dem Jahr 2020 für Laufbänder und Ergometers nicht mehr mit coscom v3 und Trackmaster oder anderen Schnittstellen-Protokollen ausgestattet sein werden, sondern nur noch mit coscom v4.