=========
`xMova Android <../doc.html>`_
=========
-------
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
}
}]
}