Contact Us

IC-6, SJCE-STEP, JSS Technical Institutions,
Mysore-570006, Karnataka, India
Contact Number: +91-821-2414198
Fax: +91-821-2414178
Email: info@nivedhanatek.com

Partner

We are Airbus Certified TETRA Wireless Solution Partner (TWISP).

Tetra Smart Modem System(TSMS) Software Framework


Introduction

The TSMS Framework is JAVA based, customizable and extensible protocol definition and processing system. End users and third parties will leverage the provided functionalities of TSMS Framework to seamlessly build their own proprietary/application protocols and processing logic. TSM and TSMSV software subsystems are composed each of two distinct elements.

  • Application Software: Implement the specific function expected by the user, for example protocol processing and transmission to and from TETRA.
  • Monitoring Software: Implements the Operation and Maintenance of the device (TSM or TSMSV) as well as takes care of the availability of the Application Software. Monitor Software is in charge to recover the correct operation of the Application Software when this last stop responding or when the response is not as expected during correct operation.

Features

  • Completely open software framework, deigned for performance, flexibility and resiliency. Dynamically allows for over the air integration of features.
  • Allow the coexistence of several protocols and protocol processing on modem and servers.
  • Fault tolerance and performance monitoring implemented in every component of the software and hardware architecture.
  • Built-In Protocols: MODBUS, DNP3, BSAP, SINAUT, ROC, IEC, and TETRA
  • Protocol Extension and Expansion: Create, Convert, and Adapt.
  • Designed to Run 24/7 with Built-in OAM System.
  • Custom security.
  • Framework has a Built-in heartbeat mechanism to monitor each module in the system.

Advantages

  • Implementing new functionality in a very less time
  • Easy Framework Upgrade in less time

Examples

  • Easy Protocol Definition/Creation/Decoding
  • Supports easy definition and implementation of any industry protocol using “TSMS Framework Protocol” which provides “TSMS PDU Factory” and “TSMS PDU Information Elements” to define the structure of any Application PDU.

    e.g. //Defining the MODBUS READ_COIL Request PDU Structure using PDUIEs(PDU //Information Elements)
    static TSMSPduStructure readCoilSRequest = new TSMSPduStructure(
    MBFunctionID.getPduID((byte)MBFunctionID.READ_COIL_STATUS.ordinal(), false),
    MbPduClass,
    new TSMSPduIE[] {
    new MBPduIESlaveAddress((byte)10),
    new MBPduIEFunction((byte) MBFunctionID.READ_COIL_STATUS.ordinal()),
    new MBPduIEReadAddress((short)0x00C4),
    new MBPduIENumOfReadItems((short)0x0016),
    new MBPduIECrc((short) 0)
    });
    //Defining the MODBUS READ_COIL Response PDU Structure using PDUIEs(PDU //Information Elements)
    static TSMSPduStructure readCoilSResponse = new TSMSPduStructure(
    MBFunctionID.getPduID((byte)MBFunctionID.READ_COIL_STATUS.ordinal(), true),
    MbPduClass,
    new TSMSPduIE[] {
    new MBPduIESlaveAddress((byte)10),
    new MBPduIEFunction((byte) MBFunctionID.READ_COIL_STATUS.ordinal()),
    new MBPduIEVByteArray(0),
    new MBPduIECrc((short) 0)
    });

    Once defined, the “TSMS PDU factory” will facilitate easy coding/decoding of any PDU

  • Easy Implementation of Application State Machines
  • Supports easy implementation of any industry application logic or State Machines using “TSMS State Machine” where it provides “TSMS States” to implement Application States and “TSMS State Logics” to implement Application State Logic.

    // Declare the states
    static TSMSState S1_Idle = new TSMSState(
    "S1_Idle",
    new TSMSStateLogic() { //OnInit
    public TSMSAction execute(TSMSEvent event, TSMSEnvironment smEnvironment)
    {
    //S1_Idle State OnInit code goes here..
    }},
    new TSMSStateLogic() { //OnEntry
    public TSMSAction execute(TSMSEvent event, TSMSEnvironment smEnvironment)
    {
    //S1_Idle State OnEntry code goes here..
    }},
    new TSMSStateLogic() { //OnEvent
    public TSMSAction execute(TSMSEvent event, TSMSEnvironment smEnvironment)
    {
    //S1_Idle State OnEvent code goes here..
    }},
    new TSMSStateLogic() { //OnExit
    public TSMSAction execute(TSMSEvent event, TSMSEnvironment smEnvironment)
    {
    //S1_Idle State OnExit code goes here..
    }},
    new TSMSStateLogic() { //OnError
    public TSMSAction execute(TSMSEvent event, TSMSEnvironment smEnvironment)
    {
    //S1_Idle State OnError code goes here..
    }},
    new TSMSStateLogic() { //OnStop
    public TSMSAction execute(TSMSEvent event, TSMSEnvironment smEnvironment)
    {
    //S1_Idle State OnError code goes here..
    }}
    );