@zimo-elektronik/zcan 1.0.30 → 1.0.31

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.
@@ -24,7 +24,7 @@ export class Query {
24
24
  this.match = match;
25
25
  }
26
26
  lock(millis = 500) {
27
- let centis = millis / 10;
27
+ let centis = Math.abs(millis) / 10;
28
28
  while (this.mutex) {
29
29
  delay(10);
30
30
  if (!centis--)
@@ -47,12 +47,14 @@ export class Query {
47
47
  this.result = new Message(this.header, msg.data);
48
48
  this.rx?.unsubscribe();
49
49
  });
50
- let tick = 2 * retries;
50
+ let tick = 2 * Math.abs(retries);
51
51
  while (this.result === undefined) {
52
52
  if (tick % 2 === 0)
53
53
  this.tx(this.header);
54
- if (!tick--)
54
+ if (!tick--) {
55
+ this.rx?.unsubscribe();
55
56
  return undefined;
57
+ }
56
58
  delay(5);
57
59
  }
58
60
  return this.result;
@@ -1 +1 @@
1
- {"version":3,"file":"communication.js","sourceRoot":"","sources":["../../src/@types/communication.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAwB,MAAM,MAAM,CAAC;AAgBlD,MAAM,OAAO,OAAO;IAElB,MAAM,CAAS;IACf,IAAI,CAAgB;IAEpB,YAAY,MAAc,EAAE,OAAsB,EAAE;QAElD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,IAAc;QAEjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IAEhB,MAAM,CAAS;IACf,OAAO,CAAa;IACpB,EAAE,GAA6B,SAAS,CAAC;IACzC,EAAE,GAA6B,GAAG,EAAE,GAAE,CAAC,CAAC;IAChC,MAAM,GAAkB,SAAS,CAAC;IAC1C,KAAK,GAAwB,GAAG,EAAE,GAAE,OAAO,IAAI,CAAA,CAAA,CAAC,CAAC;IACzC,KAAK,GAAY,KAAK,CAAC;IAE/B,YAAY,MAAc,EAAE,OAAmB,EAAG,QAA6B,CAAC,GAAG,EAAE,GAAE,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC;QAEnG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,SAAiB,GAAG;QAEvB,IAAI,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;QACzB,OAAM,IAAI,CAAC,KAAK,EAChB,CAAC;YACC,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,IAAG,CAAC,MAAM,EAAE;gBACV,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QAEJ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,UAAkB,CAAC;QAErB,IAAG,IAAI,CAAC,EAAE,KAAK,SAAS;YACtB,OAAO,SAAS,CAAC;QAEnB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAM,EAAE,EAAE;YAE1C,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACjB,OAAO;YACT,IAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG;gBACnC,OAAO;YACT,IAAI,CAAC,MAAM,GAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAO,CAAC;YACxD,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;QAEvB,OAAM,IAAI,CAAC,MAAM,KAAK,SAAS,EAC/B,CAAC;YACC,IAAG,IAAI,GAAG,CAAC,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,IAAG,CAAC,IAAI,EAAE;gBACR,OAAO,SAAS,CAAC;YACnB,KAAK,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"communication.js","sourceRoot":"","sources":["../../src/@types/communication.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAwB,MAAM,MAAM,CAAC;AAgBlD,MAAM,OAAO,OAAO;IAElB,MAAM,CAAS;IACf,IAAI,CAAgB;IAEpB,YAAY,MAAc,EAAE,OAAsB,EAAE;QAElD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,IAAc;QAEjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IAEhB,MAAM,CAAS;IACf,OAAO,CAAa;IACpB,EAAE,GAA6B,SAAS,CAAC;IACzC,EAAE,GAA6B,GAAG,EAAE,GAAE,CAAC,CAAC;IAChC,MAAM,GAAkB,SAAS,CAAC;IAC1C,KAAK,GAAwB,GAAG,EAAE,GAAE,OAAO,IAAI,CAAA,CAAA,CAAC,CAAC;IACzC,KAAK,GAAY,KAAK,CAAC;IAE/B,YAAY,MAAc,EAAE,OAAmB,EAAG,QAA6B,CAAC,GAAG,EAAE,GAAE,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC;QAEnG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,SAAiB,GAAG;QAEvB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACnC,OAAM,IAAI,CAAC,KAAK,EAChB,CAAC;YACC,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,IAAG,CAAC,MAAM,EAAE;gBACV,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;QAEJ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,UAAkB,CAAC;QAErB,IAAG,IAAI,CAAC,EAAE,KAAK,SAAS;YACtB,OAAO,SAAS,CAAC;QAEnB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAM,EAAE,EAAE;YAE1C,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACjB,OAAO;YACT,IAAG,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG;gBACnC,OAAO;YACT,IAAI,CAAC,MAAM,GAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAO,CAAC;YACxD,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAM,IAAI,CAAC,MAAM,KAAK,SAAS,EAC/B,CAAC;YACC,IAAG,IAAI,GAAG,CAAC,KAAK,CAAC;gBACf,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,IAAG,CAAC,IAAI,EAAE,EAAE,CAAC;gBACX,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC;gBACvB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,KAAK,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -12,9 +12,9 @@ export default class InfoGroup {
12
12
  }
13
13
  getModuleInfo(nid, type) {
14
14
  this.mx10.log.next('mx10.getModuleInfo: ' + nid + ', ' + type);
15
- if (!this.modInfoQ?.lock())
15
+ if (this.modInfoQ !== undefined && !this.modInfoQ.lock())
16
16
  return;
17
- this.mx10.log.next("mx10.getModuleInfo: couldn't acquire lock");
17
+ this.mx10.log.next("mx10.getModuleInfo: lock aquired");
18
18
  this.modInfoQ = new Query(ModInfoData.header(MsgMode.REQ, nid), this.onModuleInfoChange);
19
19
  this.mx10.log.next("mx10.getModuleInfo.query: " + JSON.stringify(this.modInfoQ));
20
20
  this.modInfoQ.tx = ((header) => {
@@ -29,7 +29,11 @@ export default class InfoGroup {
29
29
  return (msg.type() === type);
30
30
  });
31
31
  this.mx10.log.next("running mx10.getModuleInfo.query: " + JSON.stringify(this.modInfoQ));
32
- return this.modInfoQ.run();
32
+ const rv = this.modInfoQ.run();
33
+ this.mx10.log.next("mx10.getModuleInfo.rv: " + JSON.stringify(rv));
34
+ this.modInfoQ.unlock();
35
+ this.modInfoQ = undefined;
36
+ return rv;
33
37
  }
34
38
  parse(size, command, mode, nid, buffer) {
35
39
  switch (command) {
@@ -1 +1 @@
1
- {"version":3,"file":"infoGroup.js","sourceRoot":"","sources":["../../src/zcan/infoGroup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infoGroup.js","sourceRoot":"","sources":["../../src/zcan/infoGroup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "types": "dist/index.d.ts",
6
6
  "license": "MIT",
7
7
  "repository": "https://github.com/ZIMO-Elektronik/zcan",
8
- "version": "1.0.30",
8
+ "version": "1.0.31",
9
9
  "scripts": {
10
10
  "start": "node dist/main.js",
11
11
  "start:dev": "nodemon --ext js,ts,json,env --exec \"node --experimental-specifier-resolution=node --loader ts-node/esm\" src/main.ts",
@@ -53,7 +53,7 @@ export class Query<T extends Message>
53
53
 
54
54
  lock(millis: number = 500): boolean
55
55
  {
56
- let centis = millis / 10;
56
+ let centis = Math.abs(millis) / 10;
57
57
  while(this.mutex)
58
58
  {
59
59
  delay(10);
@@ -84,14 +84,16 @@ export class Query<T extends Message>
84
84
  this.rx?.unsubscribe();
85
85
  });
86
86
 
87
- let tick = 2 * retries;
87
+ let tick = 2 * Math.abs(retries);
88
88
 
89
89
  while(this.result === undefined)
90
90
  {
91
91
  if(tick % 2 === 0)
92
92
  this.tx(this.header);
93
- if(!tick--)
93
+ if(!tick--) {
94
+ this.rx?.unsubscribe();
94
95
  return undefined;
96
+ }
95
97
  delay(5);
96
98
  }
97
99
  return this.result;
@@ -24,9 +24,9 @@ export default class InfoGroup {
24
24
  getModuleInfo(nid: number, type: ModInfoType | number): ModInfoData | undefined
25
25
  {
26
26
  this.mx10.log.next('mx10.getModuleInfo: ' + nid + ', ' + type);
27
- if(!this.modInfoQ?.lock())
27
+ if(this.modInfoQ !== undefined && !this.modInfoQ.lock())
28
28
  return;
29
- this.mx10.log.next("mx10.getModuleInfo: couldn't acquire lock");
29
+ this.mx10.log.next("mx10.getModuleInfo: lock aquired");
30
30
 
31
31
  this.modInfoQ = new Query(ModInfoData.header(MsgMode.REQ, nid), this.onModuleInfoChange);
32
32
  this.mx10.log.next("mx10.getModuleInfo.query: " + JSON.stringify(this.modInfoQ));
@@ -42,7 +42,11 @@ export default class InfoGroup {
42
42
  return (msg.type() === type);
43
43
  })
44
44
  this.mx10.log.next("running mx10.getModuleInfo.query: " + JSON.stringify(this.modInfoQ));
45
- return this.modInfoQ.run();
45
+ const rv = this.modInfoQ.run();
46
+ this.mx10.log.next("mx10.getModuleInfo.rv: " + JSON.stringify(rv));
47
+ this.modInfoQ.unlock();
48
+ this.modInfoQ = undefined;
49
+ return rv;
46
50
  }
47
51
 
48
52
  parse(