Hoi allen,
nog steeds bezig met mij raspberry systeem. Eerder had ik al een vraag gesteld over PHP, dit is javascript/node.js gerelateerd, dus een nieuw topic lijkt mij wel zo handig. Met wat tutorials, examples en dergelijke ben ik best een eind gekomen, maar onderstaande kan ik niet vinden. Ook op het forum word ik niet wijzer.
Een van de examples is de npm pigpio library.
Ik ben aan het stoeien met sockets en dergelijke, vandaar ook node.js. GPIO acties moeten z.s.m. doorgestuurd worden naar de browser. An sich gaat dat redelijk, ware het niet dat alles via 1 actie doorgestuurd wordt op dezelfde plaats in het array. Deze plaats is wel te wijzigen, maar jullie snappen wel dat ik niet wil dat meerdere drukknoppen op 1 plaats in het array uitgelezen worden, maar gewoon allemaal een eigen plaatsje krijgen.
Probleem is dus: hij gooit alles op de 8e locatie van gpioInputPins. Maak ik hem 6 lang, dan komen beide op de 6e plaats en maak ik hem 1 lang, dan komt alles op de eerste plaats. Halverwege, tussen de twee gpio uitleesacties in, een key--; statement zetten heeft als resultaat dat allebei de resultaten op een andere plek komen. Beide schuiven dan 1 naar links in het array op. gpioInputs[key-1]... heeft geen effect.
Het zit dus ergens in de key, maar ik kan niet vinden waarin.
nog steeds bezig met mij raspberry systeem. Eerder had ik al een vraag gesteld over PHP, dit is javascript/node.js gerelateerd, dus een nieuw topic lijkt mij wel zo handig. Met wat tutorials, examples en dergelijke ben ik best een eind gekomen, maar onderstaande kan ik niet vinden. Ook op het forum word ik niet wijzer.
Een van de examples is de npm pigpio library.
Ik ben aan het stoeien met sockets en dergelijke, vandaar ook node.js. GPIO acties moeten z.s.m. doorgestuurd worden naar de browser. An sich gaat dat redelijk, ware het niet dat alles via 1 actie doorgestuurd wordt op dezelfde plaats in het array. Deze plaats is wel te wijzigen, maar jullie snappen wel dat ik niet wil dat meerdere drukknoppen op 1 plaats in het array uitgelezen worden, maar gewoon allemaal een eigen plaatsje krijgen.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| const Gpio = require('pigpio').Gpio; const gpioInputPins = [0, 1, 2, 3, 4, 5, 6, 7]; const gpioOutputPins = [8, 9, 10, 11, 12, 13, 14, 15]; var gpioInputs = []; var gpioOutputs = []; gpioInputPins.map(function (value, key) { gpioInputs[key] = new Gpio(26, { mode: Gpio.INPUT, pullUpDown: Gpio.PUD_DOWN, edge: Gpio.EITHER_EDGE }); gpioInputs[key].on('interrupt', function (level) { if (level == 0) { inputs[key] = false; } else { inputs[key] = true; } inputsSocket.emit('state', inputs); }); gpioInputs[key] = new Gpio(19, { mode: Gpio.INPUT, pullUpDown: Gpio.PUD_DOWN, edge: Gpio.EITHER_EDGE }); gpioInputs[key].on('interrupt', function (level) { if (level == 0) { inputs[key] = false; } else { inputs[key] = true; } inputsSocket.emit('state', inputs); }); }); |
Probleem is dus: hij gooit alles op de 8e locatie van gpioInputPins. Maak ik hem 6 lang, dan komen beide op de 6e plaats en maak ik hem 1 lang, dan komt alles op de eerste plaats. Halverwege, tussen de twee gpio uitleesacties in, een key--; statement zetten heeft als resultaat dat allebei de resultaten op een andere plek komen. Beide schuiven dan 1 naar links in het array op. gpioInputs[key-1]... heeft geen effect.
Het zit dus ergens in de key, maar ik kan niet vinden waarin.