@libs-scripts-mep/grav-fw-pvi 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +30 -112
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -26,123 +26,41 @@ npm uninstall @libs-scripts-mep/grav-fw-pvi
26
26
  | Renesas | Renesas Flash Programmer | ✔️ |
27
27
  | Nuvoton | JLink v7.82 | ✔️ |
28
28
 
29
- ## Resumo da Classe
29
+ ## Exemplo de Utilização de Buffers
30
30
 
31
31
  ```js
32
32
 
33
- /**
34
- * Realiza gravacao nos microcontroladores ST atraves do PVI, via STVP command line
35
- * @param {string} dirFirm formato esperado: "I:\\\Documentos\\\Softwares\\\STM8\\\STM8S003F3\\\INV-173\\\173v01\\\173v01_1.50_Com.stp"
36
- * @param {string} dirOpt formato esperado: "I:\\\Documentos\\\Softwares\\\STM8\\\STM8S003F3\\\INV-173\\\173v01\\\173v01_1.50_Com.stp"
37
- * @param {string} modelo_uC formato esperado: "STM8S003F3"
38
- * @param {function} callback
39
- * @param {number} timeOut
40
- */
41
- GravaFW.STM8(params , callback , timeOut = 5000){
42
-
43
- //invoca o STVP passando os parametros informados
44
- let result = pvi.runInstructionS("stvp", [params])
45
-
46
- //executa callback dependendo do resultado
47
- if (result.includes(`Verify OPTION BYTE succeeds`)) {
48
- callback(true, result)
49
- } else if (result.includes(`ERROR : Cannot communicate with the tool`)) {
50
- callback(null, "Gravador não respondeu")
51
- } else {
52
- callback(false, "Falha na gravação do firmware final")
53
- }
54
- }
55
-
56
-
57
- /**
58
- * Realiza gravacao nos microcontroladores renesas atraves do PVI, via renesas flash programmer command line
59
- * @param {string} dirProject Formato esperado: "I:\\\Documentos\\\Softwares\\\RENESAS\\\R5F51303ADFL\\\INV-301\\\301v06\\\301v06.rpj"
60
- * @param {function} callback
61
- * @param {number} timeOut
62
- */
63
- static Renesas(params, callback, timeOut = 5000) {
64
-
65
- //invoca o Renesas Flash Programmer passando os parametros informados
66
- let result = pvi.runInstructionS(`RENESAS.gravafw`, [params])
67
-
68
- //executa callback dependendo do resultado
69
- if (result.includes(`Operation completed.`)) {
70
- console.log(`%cLog Program:\n\n${result}`, ' color: #00EE66')
71
- callback(true, result)
72
-
73
- } else if (result.includes(`Cannot find the specified tool.`)) {
74
- console.log(`%cLog Program:\n\n${result}`, ' color: #EE0033')
75
- callback(null, `Gravador não respondeu`)
76
-
77
- } else if (result.includes(`Error: No project file specifed.`)) {
78
- console.log(`%cLog Program:\n\n${result}`, ' color: #EE0033')
79
- callback(false, `Projeto informado é inválido`)
80
-
81
- } else {
82
- console.log(`%cLog Program:\n\n${result}`, ' color: #EE0033')
83
- callback(false, `Falha na gravação do firmware final`)
84
- }
85
- }
86
-
87
- /**
88
- * Realiza gravacao nos microcontroladores Nuvoton atraves do PVI, via Jlink v7 command line
89
- * @param {string} dirProject Formato esperado: "C:\\Users\\eduardo.rezzadori\\Desktop\\Farmwar\\193M3PL3v01_3.02.hex"
90
- * @param {string} commandFile Arquivo de comandos JLink, pseudo-script de gravação
91
- * @param {string} device modelo do micrcontrolador
92
- * @param {function} callback
93
- * @param {number} timeOut
94
- */
95
- static JLink_v7(dirProject = null, commandFile = null, device, callback = () => { }, timeOut = 10000) {
96
- // inicia as variaveis locais utilizadas
97
- let error = null, observer = null, logGravacao = [], controleGravacao = null
98
- const pathPVI = pvi.runInstructionS("GETPVIPATH", [])
99
-
100
- // start do obsever para o retorno do cmd
101
- observer = pvi.FWLink.globalDaqMessagesObservers.add((m, data) => {
102
- console.log(m, data)
103
-
104
- // monta um array para validar a gravação
105
- logGravacao.push(data)
106
-
107
- // aguarda a string final do processo de gravação
108
- if (data == "Script processing completed.") {
109
- pvi.FWLink.globalDaqMessagesObservers.clear()
110
- pvi.daq.init()
111
- logGravacao.forEach((e) => {
112
-
113
- // mensagem que valida a gravação
114
- if (e == "O.K.") {
115
- observer = () => { }
116
- controleGravacao = true
117
- // erro conhecido
118
- } else if (e == "Cannot connect to target.") {
119
- error = e
120
- }
121
- })
122
-
123
- // retorno convencional do script
124
- if (controleGravacao) {
125
- clearTimeout(timeOutGravacao)
126
- callback(true, `Gravado com sucesso, caminho: ${dirProject}`)
127
- } else if (error) {
128
- clearTimeout(timeOutGravacao)
129
- callback(false, `Falha na gravação, ${error}`)
33
+ static async GravaFirmware(ObjParams) {
34
+
35
+ return new Promise(async (resolve) => {
36
+
37
+ if(await ExecGravacao(dirFirm, dirOpt, modelo_uC, ObjParams)){
38
+ console.log("GRAVOU")
39
+ }else{
40
+ console.log("NÃO GRAVOU")
41
+ }
42
+
43
+ async function ExecGravacao(dirFirm, dirOpt, modelo_uC, ObjParams) {
44
+
45
+ let RetornoGravacao = await GravaFW.STM8(dirFirm, dirOpt, modelo_uC, ObjParams.timeOut)
46
+
47
+ if (RetornoGravacao.sucess) {
48
+
49
+ return true
50
+
130
51
  } else {
131
- clearTimeout(timeOutGravacao)
132
- callback(false, `Falha na gravação, caminho: ${dirProject}`)
52
+
53
+ if (ObjParams.Tentativa >= ObjParams.MaxTentativas) {
54
+ return false
55
+ } else {
56
+ ObjParams.Tentativa++
57
+ return ExecGravacao(dirFirm, dirOpt, modelo_uC, ObjParams)
58
+ }
59
+
133
60
  }
61
+
134
62
  }
135
- }, "sniffer.exec")
136
-
137
- // execução do comando de gravação
138
- pvi.runInstructionS("EXEC", [`${pathPVI}\\Plugins\\JLINK7\\JLink.exe`, `-device ${device} -CommandFile ${commandFile}`, "true", "true"])
139
-
140
- // timeout para setar erro caso ocorra algum tipo de erro inesperado
141
- let timeOutGravacao = setTimeout(() => {
142
- pvi.FWLink.globalDaqMessagesObservers.clear()
143
- pvi.daq.init()
144
- callback(false, `Falha na gravação, verifique a conexão USB do gravador`)
145
- }, timeOut)
146
- }
63
+ }
64
+
147
65
  ```
148
66
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libs-scripts-mep/grav-fw-pvi",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Auxilia na gravação de microcontroladores por linha de comando através do PVI",
5
5
  "main": "grav-fw-pvi.js",
6
6
  "scripts": {