xMova Android

INTEGRAÇÃO COM O MARTE

Versão 2.15+

Esta funcionalidade permite que o xMova estabeleça uma comunicação via Bluetooth com o dispositivo do MARTE obtendo informações que são enviadas para o WebService e também para uso pelo fluxo.

Atributos:

  • bluetooth marte: Usado no app, habilita a funcionalidade de integração com o MARTE via Bluetooth

Exemplo de configuração do MARTE. Versão 2.26+:

App appCode=X
        id 30707
        name xMova WebView
        version 1.0.34
        intVersion 35
        install type=fillAuth inputEntity=AuthInput

        marte
                maxSpeed 30
                maxRpm 1500
                speedToLockScreen 15

Versão 2.26+

  • showGpsSpeed: Habilita a exibição da velocidade do GPS quando a velocidade do GPS está diferente da velocidade enviada pela rede CAN.
  • disableTelemetry: Desabilita a gravação dos arquivos de telemetria.
  • doNotBlockScreenWhenMoving: Permite que o usuário saia da tela do MARTE enquanto o aplicativo está detectando movimento.
  • telemetryInterval: Determina qual o intervalo para que sejam registrados os dados de telemetria.
  • settingsPassword: Configura qual a senha que deve ser digitada para que seja exibida a tela de configurações do MARTE. (Padrão: sts557)
  • advancedSettingsPassword: Configura qual a senha deve ser digitada para que seja exibida a parte de configurações avançadas do MARTE. (Padrão: stsadv328)
  • cmdPassword: Configura qual a senha deve ser digitada para exibir a tela de comandos do MARTE. (Padrão: 332cmd)
  • speedToLockScreen: Determina a partir de qual velocidade o aplicativo deve impedir que o usuário saia da tela do MARTE. (Padrão: 10km/h)
  • minRpm: Determina qual o valor mínimo de RPM o usuário deve manter, caso esteja abaixo do valor o campo de RPM na tela do MARTE ficará com uma coloração amarela.
  • maxRpm: Determina qual o valor limite de RPM que o usuário pode atingir, caso o valor seja ultrapassado o campo de RPM ficará com uma coloração vermelha.
  • minSpeed: Determina qual o valor mínimo de velocidade o usuário deve manter, caso esteja abaixo do valor o campo de velocidade na tela do MARTE ficará com uma coloração amarela.
  • maxSpeed: Determina qual o valor limite de velocidade que o usuário pode atingir, caso o valor seja ultrapassado o campo de velocidade ficará com uma coloração vermelha.

Langs :

  • FixedKeyMarteSearchingDevice: Mensagem indicando a busca por um dispositivo do MARTE (Padrão: Buscando MARTE).
  • FixedKeyMarteDeviceDisconnected: Mensagem indicando que o MARTE foi desconectado. (Padrão: Sem Conexão com o MARTE).
  • FixedKeySpeedLabel: Label para apresentar o valor da velocidade. (Padrão: Vel.).
  • FixedKeyRpmLabel: Label para apresentar o valor da rotação. (Padrão: Rot.).
  • FixedKeyIgnitionTimeLabel: Label para apresentar o valor das horas de ignição ligada. (Padrão: Horímetro de Ignição).
  • FixedKeyEngineTimeLabel: Label para apresentar o valor das horas de motor ligado. (Padrão: Horímetro de Motor).
  • FixedKeyAuxTimeLabel: Label para apresentar o valor das horas de auxiliar ligado. (Padrão: Horímetro Auxiliar).

Eventos:

Versão 2.17+

  • OnIgnitionStatusChanged: Executado quando ocorre uma mudança no estado da ignição da máquina. Recebe os registro de _MARTE_STATUS (marte), Location (location) e _GEOFENCE_LOCATION (geofence) (Os dois últimos somente se o aplicativo possuir as funcionalides referentes a cada entidade)
  • OnEngineStatusChanged: Executado quando ocorre uma mudança no estado do motor da máquina. Recebe os registro de _MARTE_STATUS (marte), Location (location) e _GEOFENCE_LOCATION (geofence) (Os dois últimos somente se o aplicativo possuir as funcionalides referentes a cada entidade)
  • OnWorkStatusChanged: Executado quando ocorre uma mudança no estado da flag que indica se a máquina está em estado de produção ou não. Recebe os registro de _MARTE_STATUS (marte), Location (location) e _GEOFENCE_LOCATION (geofence) (Os dois últimos somente se o aplicativo possuir as funcionalides referentes a cada entidade)
  • OnTTSCommand: Executado quando o aplicativo recebe uma mensagem do dispositivo do MARTE. A mensagem vem na variável text do tipo String. Recebe os registro de _MARTE_STATUS (marte), Location (location) e _GEOFENCE_LOCATION (geofence) (Os dois últimos somente se o aplicativo possuir as funcionalides referentes a cada entidade)

Instruções:

Versão 2.26+

  • updateMarte: Instrução utilizada para atualizar os valores de configuração do MARTE dinamicamente, durante a execução do aplicativo. Podem ser alterados os parâmetros de minSpeed, maxSpeed, minRpm e maxRpm. Exemplo: updateMarte minSpeed=1 maxSpeed=10 minRpm=1 maxRpm=250

Entidades:

Entidade _MARTE_REPORTS (Criada pelo parser), usada para enviar informações recebidas do **MARTE* via Bluetooth para o Web Service.:

_MARTE_REPORTS
        id inc (versão 2.17+ id uuid)
        reportId String
        report String
        date Now

Entidade _MARTE_STATUS (Criada pelo parser), usada para enviar informações recebidas do **MARTE* via Bluetooth para utilização pelo fluxo.:

_MARTE_STATUS
        marteId String
        date Now
        ignitionState boolean
        engineState boolean
        engineHour long
        engineMinutes int
        engineSeconds int
        engineHorimeter long
        engineHorimeterDecimal Decimal
        ignitionHour long
        ignitionMinutes int
        ignitionSeconds int
        ignitionHorimeter long
        ignitionHorimeterDecimal Decimal
        auxHour long
        auxMinutes int
        auxSeconds int
        auxHorimeter long
        auxHorimeterDecimal Decimal
        speed int
        gpsSpeed int
        rpm int

Versão 2.17.35 Entidade _MARTE_COMMAND (Criada pelo parser), usada para enviar comandos para um dispositivo MARTE conectado ao device. O registro da mesma entidade é enviado para a WEB para notificar a execução do comando:

_MARTE_COMMAND sync=in|backgroundIn|out
        id inc
        command String
        device String
        date Now

Versão 2.17.35 Entidade _MARTE_TTS (Criada pelo parser), usada para receber mensagens que serão faladas quando for recebido um comando TTS do MARTE:

_MARTE_TTS sync=in|backgroundIn
        id inc
        message String

Exemplo de Configuração:

App appCode=X
        id 30389
        name xMova Crud
        version 1.0.89
        intVersion 90
        install type=fillAuth inputEntity=AuthInput
        bluetooth marte
        server
                jsonServiceApi url=%jsonServiceApiUrl
                sqlDataSource agro
                defaultOnlineValidator jsonServiceApi
                defaultDataSource jsonServiceApi
                defaultReceiver jsonServiceApi
                versionControl Crc

        OnIgnitionStatusChanged
                if marte.ignitionState == true
                        toast @"Ignição Ligada"
                else
                        toast @"Ignição Desligada"

        OnEngineStatusChanged
                if marte.engineState == true
                        toast @"Motor Ligado"
                else
                        toast @"Motor Desligado"

        OnWorkStatusChanged
                if marte.workingState == true
                        toast @"Trabalhando"
                else
                        toast @"Parado"

        OnTTSCommand
                if text == @"TESTE DE SOM"
                        return true
                if text == @"IGNICAO LIGADA"
                        speech @"ignição ligada"
                        return true
                else
                        return false

Exemplo de uma entidade fazendo uso das informações da entidade _MARTE_STATUS:

ApontamentoMarteIgnicao sync=out SyncBackgroundOnFinishRecord notSavedMessage
        id inc
        ligou boolean
        location Location inlineData
        marteStatus _Marte_Status inlineData
        horimetro Decimal decimalSize=1
        fieldEvents
                OnGetDefaultInputValue
                        horimetro
                                if marteStatus != null
                                        return marteStatus.engineHorimeterDecimal

Exemplo de uso da instrução updateMarte:

App appCode=X
id 30707
name xMova WebView
version 1.0.34
intVersion 35
install type=fillAuth inputEntity=AuthInput
server
        jsonServiceApi url=%jsonServiceApiUrl
        sqlDataSource agro
        defaultOnlineValidator jsonServiceApi
        defaultDataSource jsonServiceApi
        defaultReceiver jsonServiceApi
        versionControl Crc

marte
        maxSpeed 30
        maxRpm 1500
        speedToLockScreen 15

OnEngineStatusChanged
        if marte.engineState == true
                updateMarte minSpeed=1 maxSpeed=10 minRpm=1 maxRpm=250
        else
                updateMarte minSpeed=0 maxSpeed=0 minRpm=0 maxRpm=0

Exemplo de uso da instrução updateMarte:

ApontamentoUpdateMarte transient
        minSpeed int
        maxSpeed int
        minRpm int
        maxRpm int
        speedToLockScreen int
        fieldEvents
                afterFill
                        speedToLockScreen
                                updateMarte minSpeed=minSpeed maxSpeed=maxSpeed minRpm=minRpm maxRpm=maxRpm speedToLockScreen=speedToLockScreen

Exemplo de um envio de registro de _MARTE_REPORTS:

{
        "type": "_MARTE_REPORTS",
        "records": [{
                "id": 1523630263512,
                "dateType": "S",
                "date": "13/04/2018 11:37:02",
                "XDATE-date": {
                        "date": "13/04/2018 11:37:02",
                        "gpsMillis": 1523630223129,
                        "deviceMillis": 1523630233046,
                        "timeZone": "America/Sao_Paulo",
                        "type": "S",
                        "millis": 1523630222365
                },
                "reportId": "",
                "report": ">RAX20,130418143425,000,-0068,-0004,+0076;ID=5005;#4762;*6E<"
        }]
}

Exemplo de um envio de registro com a informação de _MARTE_STATUS:

{
                "id": 5,
                "createDateTimeType": "S",
                "createDateTime": "04/04/2018 10:41:18",
                "XDATE-createDateTime": {
                        "date": "04/04/2018 10:41:18",
                        "gpsMillis": 1522849281225,
                        "deviceMillis": 1522849290101,
                        "timeZone": "America/Sao_Paulo",
                        "type": "S",
                        "millis": 1522849278414
                },
                "boletim": 3,
                "location": {
                        "lat": -23.20891834,
                        "long": -45.90829354,
                        "alt": 620.0,
                        "gpsTime": 1522849150000,
                        "speed": 0.0,
                        "bearing": 0.0,
                        "accuracy": 81.0
                },
                "marteStatus": {
                        "marteId": "ID=5005",
                        "date": "04/04/2018 10:41:17",
                        "XDATE-date": {
                                "date": "04/04/2018 10:41:17",
                                "gpsMillis": 1522849280788,
                                "deviceMillis": 1522849289663,
                                "timeZone": "America/Sao_Paulo",
                                "type": "S",
                                "millis": 1522849277977
                        },
                        "ignitionState": 1,
                        "engineState": 0,
                        "engineHorimeter": 0,
                        "engineHorimeterDecimal": "0.00",
                        "ignitionHorimeter": 66674,
                        "ignitionHorimeterDecimal": "18.52",
                        "auxHorimeter": 0,
                        "auxHorimeterDecimal": "0.00",
                        "speed": 0,
                        "gpsSpeed": 0,
                        "rpm": 0
                },
                "parou": 1
        }

Exemplo de um recebimento de registros de _MARTE_TTS:

{
        "name": "_MARTE_TTS",
        "records": [{
                "id": 1,
                "message": "Ignição ligada"
        },
        {
                "id": 2,
                "message": "Desligou a Ignição"
        }]
}

Exemplo de um recebimento de registros de _MARTE_COMMAND:

{
        "name": "_MARTE_COMMAND",
        "records": [{
                "id": 1,
                "command": ">QSN"
        },
        {
                "id": 2,
                "command": ">QSN"
        },
        {
                "id": 3,
                "command": ">QSN"
        }]
}

Exemplo de um envio de registros de _MARTE_COMMAND:

{
        "type": "_MARTE_COMMAND",
        "records": [{
                "id": 1,
                "command": ">QSN",
                "device": "SIMOVA_5005|98:D3:34:90:FC:6F",
                "dateType": "S",
                "date": "13/04/2018 11:37:31",
                "XDATE-date": {
                        "date": "13/04/2018 11:37:31",
                        "gpsMillis": 1523630252467,
                        "deviceMillis": 1523630262384,
                        "timeZone": "America/Sao_Paulo",
                        "type": "S",
                        "millis": 1523630251728
                }
        },
        {
                "id": 2,
                "command": ">QSN",
                "device": "SIMOVA_5005|98:D3:34:90:FC:6F",
                "dateType": "S",
                "date": "13/04/2018 11:37:31",
                "XDATE-date": {
                        "date": "13/04/2018 11:37:31",
                        "gpsMillis": 1523630252539,
                        "deviceMillis": 1523630262457,
                        "timeZone": "America/Sao_Paulo",
                        "type": "S",
                        "millis": 1523630251800
                }
        }]
}