========= `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 } }] }