Client Virtuel : Implémentation de la carte programmable (Board) + des puces (Chip) + des interfaces (LedInterface, RelayInterface)
This commit is contained in:
parent
9bc638df39
commit
cc9aadccc0
|
@ -3,7 +3,7 @@
|
||||||
-- http://www.phpmyadmin.net
|
-- http://www.phpmyadmin.net
|
||||||
--
|
--
|
||||||
-- Host: localhost
|
-- Host: localhost
|
||||||
-- Generation Time: Jul 19, 2016 at 12:30 AM
|
-- Generation Time: Jul 19, 2016 at 12:39 AM
|
||||||
-- Server version: 5.7.12-0ubuntu1.1
|
-- Server version: 5.7.12-0ubuntu1.1
|
||||||
-- PHP Version: 7.0.4-7ubuntu2.1
|
-- PHP Version: 7.0.4-7ubuntu2.1
|
||||||
|
|
||||||
|
@ -58,13 +58,6 @@ CREATE TABLE `action_merge` (
|
||||||
`id_action` int(11) NOT NULL
|
`id_action` int(11) NOT NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `action_merge`
|
|
||||||
--
|
|
||||||
|
|
||||||
INSERT INTO `action_merge` (`id_action_merge`, `id_target`, `id_source`, `id_action`) VALUES
|
|
||||||
(1, 205, 1, 1);
|
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -140,9 +133,9 @@ INSERT INTO `global_state` (`id_global_state`, `state`, `chips`) VALUES
|
||||||
|
|
||||||
CREATE TABLE `history` (
|
CREATE TABLE `history` (
|
||||||
`id_history` int(11) NOT NULL,
|
`id_history` int(11) NOT NULL,
|
||||||
`action` int(11) NOT NULL,
|
`id_user` int(11) NOT NULL,
|
||||||
`id_acteur` int(11) NOT NULL,
|
`id_machine` int(11) NOT NULL,
|
||||||
`id_machine` int(11) NOT NULL
|
`id_action` int(11) NOT NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
@ -291,14 +284,6 @@ CREATE TABLE `machine_cluster` (
|
||||||
`name` varchar(30) COLLATE utf8_unicode_ci NOT NULL
|
`name` varchar(30) COLLATE utf8_unicode_ci NOT NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `machine_cluster`
|
|
||||||
--
|
|
||||||
|
|
||||||
INSERT INTO `machine_cluster` (`id_machine_cluster`, `id_warehouse`, `name`) VALUES
|
|
||||||
(2, 7, 'FirstMachineCluster'),
|
|
||||||
(3, 7, 'test');
|
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -311,14 +296,6 @@ CREATE TABLE `machine_cluster_merge` (
|
||||||
`id_machine` int(11) NOT NULL
|
`id_machine` int(11) NOT NULL
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||||
|
|
||||||
--
|
|
||||||
-- Dumping data for table `machine_cluster_merge`
|
|
||||||
--
|
|
||||||
|
|
||||||
INSERT INTO `machine_cluster_merge` (`id_machine_cluster_merge`, `id_machine_cluster`, `id_machine`) VALUES
|
|
||||||
(3, 2, 1),
|
|
||||||
(4, 2, 3);
|
|
||||||
|
|
||||||
-- --------------------------------------------------------
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -583,7 +560,10 @@ ALTER TABLE `action`
|
||||||
-- Indexes for table `action_merge`
|
-- Indexes for table `action_merge`
|
||||||
--
|
--
|
||||||
ALTER TABLE `action_merge`
|
ALTER TABLE `action_merge`
|
||||||
ADD PRIMARY KEY (`id_action_merge`);
|
ADD PRIMARY KEY (`id_action_merge`),
|
||||||
|
ADD KEY `id_action` (`id_action`),
|
||||||
|
ADD KEY `id_target` (`id_target`),
|
||||||
|
ADD KEY `id_source` (`id_source`);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Indexes for table `admin`
|
-- Indexes for table `admin`
|
||||||
|
@ -608,7 +588,10 @@ ALTER TABLE `global_state`
|
||||||
-- Indexes for table `history`
|
-- Indexes for table `history`
|
||||||
--
|
--
|
||||||
ALTER TABLE `history`
|
ALTER TABLE `history`
|
||||||
ADD PRIMARY KEY (`id_history`);
|
ADD PRIMARY KEY (`id_history`),
|
||||||
|
ADD KEY `id_user` (`id_user`,`id_machine`,`id_action`),
|
||||||
|
ADD KEY `history_id_machine` (`id_machine`),
|
||||||
|
ADD KEY `history_id_action` (`id_action`);
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Indexes for table `machine`
|
-- Indexes for table `machine`
|
||||||
|
@ -775,12 +758,28 @@ ALTER TABLE `warehouse`
|
||||||
-- Constraints for dumped tables
|
-- Constraints for dumped tables
|
||||||
--
|
--
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Constraints for table `action_merge`
|
||||||
|
--
|
||||||
|
ALTER TABLE `action_merge`
|
||||||
|
ADD CONSTRAINT `action_merge_id_action` FOREIGN KEY (`id_action`) REFERENCES `action` (`id_action`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
ADD CONSTRAINT `action_merge_id_source` FOREIGN KEY (`id_source`) REFERENCES `user_cluster` (`id_user_cluster`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
ADD CONSTRAINT `action_merge_id_target` FOREIGN KEY (`id_target`) REFERENCES `machine_cluster` (`id_machine_cluster`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Constraints for table `admin`
|
-- Constraints for table `admin`
|
||||||
--
|
--
|
||||||
ALTER TABLE `admin`
|
ALTER TABLE `admin`
|
||||||
ADD CONSTRAINT `admin_id_warehouse` FOREIGN KEY (`id_warehouse`) REFERENCES `warehouse` (`id_warehouse`);
|
ADD CONSTRAINT `admin_id_warehouse` FOREIGN KEY (`id_warehouse`) REFERENCES `warehouse` (`id_warehouse`);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Constraints for table `history`
|
||||||
|
--
|
||||||
|
ALTER TABLE `history`
|
||||||
|
ADD CONSTRAINT `history_id_action` FOREIGN KEY (`id_action`) REFERENCES `action` (`id_action`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
ADD CONSTRAINT `history_id_machine` FOREIGN KEY (`id_machine`) REFERENCES `machine` (`id_machine`) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
ADD CONSTRAINT `history_id_user` FOREIGN KEY (`id_user`) REFERENCES `user` (`id_user`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Constraints for table `machine`
|
-- Constraints for table `machine`
|
||||||
--
|
--
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
var Chip;
|
var Pin;(function(){Pin=function(a){parseInt(a)==a&&0<=a&&255>=a?this.value=parseInt(a):this.value=0};Pin.prototype={value:this.value};Pin.prototype.set=function(a){parseInt(a)==a&&0<=a&&255>=a&&(this.value=parseInt(a))};Pin.prototype.get=function(){return this.value}})();var Board;
|
||||||
(function(){Chip=function(){this.pins=[];this.pin={};for(var a=0;a<arguments.length;a++)parseInt(arguments[a])==arguments[a]&&(this.pins.push(parseInt(arguments[a])),this.pin[parseInt(arguments[a])]=0)};Chip.prototype={pin:this.pin,pins:this.pins};Chip.prototype.setPin=function(a,b){if(parseInt(a)==a&&this.pin.hasOwnProperty(a)){if("boolean"==typeof b)b=b?255:0;else if(b!=parseInt(b)||0>b||255<b)return;b=parseInt(b);this.pin[a]=b}};Chip.prototype.setPins=function(a){for(var b=0;b<this.pins.length;b++)this.setPin(this.pin[this.pins[b]],a[b])};
|
(function(){Board=function(a){if(!(parseInt(a)!=a||1>a)){this.maxPin=a;this.pins=[];this.listener=[];for(a=0;a<this.maxPin;a++)this.pins[a]=!1;this.listener[a]=null}};Board.prototype={maxPin:this.maxPin,pins:this.pins,listener:this.listener};Board.prototype.plug=function(a,b){if(!(b instanceof Chip))return!1;for(var c=0;c<b.pins.length;c++)if(this.pins[c]instanceof Pin)return!1;for(c=0;c<b.pins.length;c++)this.pins[c]=b.values[c],this.listener[c]=a};Board.prototype.set=function(a,b){if(!(parseInt(a)!=
|
||||||
Chip.prototype.getPin=function(a){if(parseInt(a)==a&&this.pin.hasOwnProperty(a))return this.pin[a]};Chip.prototype.getPins=function(){for(var a=[],b=0;b<this.pins.length;b++)a.push(this.getPin(this.pins[b]));return a}})();var LedInterface;
|
a||a>this.maxPin)&&this.pins[a]instanceof Pin){if("boolean"==typeof b)b=b?255:0;else if(b!=parseInt(b)||0>b||255<b)return;b=parseInt(b);this.pins[a].set(b);this.listener[a].update()}}})();var Chip;
|
||||||
(function(){LedInterface=function(a,b){a instanceof Chip&&b instanceof Element&&(this.chip=a,this.container=b)};LedInterface.prototype={chip:this.chip,container:this.container};LedInterface.prototype.apply=function(){this.container.style.background="rgb("+this.chip.pin[0]+","+this.chip.pin[1]+","+this.chip.pin[2]+")"}})();var RelayInterface;
|
(function(){Chip=function(a,b){if("string"==typeof a&&(a=a.toLowerCase(),-1!=["spi","i2c","serial"].indexOf(a)&&b instanceof Array)){for(var c=0;c<b.length;c++)if(parseInt(b[c])!=b[c])return;this.type=a;this.pins=b;this.values=[];for(c=0;c<this.pins.length;c++)this.values[c]=new Pin(0)}};Chip.prototype={type:this.type,pins:this.pins,values:this.values};Chip.prototype.setPin=function(a,b){if(!(parseInt(a)!=a||this.pins.length>=a)){if("boolean"==typeof b)b=b?255:0;else if(b!=parseInt(b)||0>b||255<b)return;
|
||||||
(function(){RelayInterface=function(a,b){a instanceof Chip&&b instanceof Element&&(this.chip=a,this.container=b)};RelayInterface.prototype={chip:this.chip,container:this.container};RelayInterface.prototype.apply=function(){this.chip.pin[0]?this.container.addClass("active"):this.container.remClass("active")}})();var previous,action;
|
b=parseInt(b);this.values[a].set(b)}};Chip.prototype.setPins=function(a){for(var b=0;b<this.pins.length;b++)this.setPin(b,a[b])};Chip.prototype.getPin=function(a){return parseInt(a)!=a||this.pins.length<=a?!1:this.values[a].get()};Chip.prototype.getPins=function(){for(var a=[],b=0;b<this.pins.length;b++)a[b]=this.getPin(b);return a}})();var LedInterface;
|
||||||
|
(function(){LedInterface=function(a,b){a instanceof Chip&&b instanceof Element&&(this.chip=a,this.container=b)};LedInterface.prototype={chip:this.chip,container:this.container};LedInterface.prototype.update=function(){this.container.style.backgroundColor="rgb("+this.chip.getPin(0)+","+this.chip.getPin(1)+","+this.chip.getPin(2)+")"}})();var RelayInterface;
|
||||||
|
(function(){RelayInterface=function(a,b){a instanceof Chip&&b instanceof Element&&(this.chip=a,this.container=b)};RelayInterface.prototype={chip:this.chip,container:this.container};RelayInterface.prototype.update=function(){this.chip.pin[0]?this.container.addClass("active"):this.container.remClass("active")}})();var previous,action;
|
||||||
(function(){previous=function(a,b){a=a.toLowerCase();for(var c=0;c<a.length;c++)if("x"!=a[c]&&a[c]!=b[c])return!1;return!0};action=function(a,b){a=a.toLowerCase();for(var c=0;c<a.length;c++)"x"!=a[c]&&(b[c]=parseInt(a[c]))}})();
|
(function(){previous=function(a,b){a=a.toLowerCase();for(var c=0;c<a.length;c++)if("x"!=a[c]&&a[c]!=b[c])return!1;return!0};action=function(a,b){a=a.toLowerCase();for(var c=0;c<a.length;c++)"x"!=a[c]&&(b[c]=parseInt(a[c]))}})();
|
||||||
|
|
|
@ -1,11 +1,132 @@
|
||||||
//////////////////////////////////////////////////////////////////////////
|
var Pin;
|
||||||
// _ ____ _ _
|
|
||||||
// ___| | __ _ ___ ___ / ___| |__ (_)_ __
|
(function(){
|
||||||
// / __| |/ _` / __/ __| | | | '_ \| | '_ \
|
|
||||||
// | (__| | (_| \__ \__ \ | |___| | | | | |_) |
|
// Constructeur de Pin
|
||||||
// \___|_|\__,_|___/___/ \____|_| |_|_| .__/
|
Pin = function(value){
|
||||||
// |_|
|
if( parseInt(value) == value && value >= 0 && value <= 255 )
|
||||||
//////////////////////////////////////////////////////////////////////////
|
this.value = parseInt(value);
|
||||||
|
else
|
||||||
|
this.value = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
Pin.prototype = { value: this.value };
|
||||||
|
|
||||||
|
Pin.prototype.set = function(value){
|
||||||
|
if( parseInt(value) == value && value >= 0 && value <= 255 )
|
||||||
|
this.value = parseInt(value);
|
||||||
|
};
|
||||||
|
|
||||||
|
Pin.prototype.get = function(){
|
||||||
|
return this.value;
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var Board;
|
||||||
|
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
|
||||||
|
/* CONSTRUCTEUR DE CARTE
|
||||||
|
*
|
||||||
|
* @maxPin<int> Nombre de pin de la board
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Board = function(maxPin){
|
||||||
|
if( parseInt(maxPin) != maxPin || maxPin < 1 )
|
||||||
|
return;
|
||||||
|
|
||||||
|
this.maxPin = maxPin;
|
||||||
|
this.pins = [];
|
||||||
|
this.listener = [];
|
||||||
|
|
||||||
|
for( var i = 0 ; i < this.maxPin ; i++ )
|
||||||
|
this.pins[i] = false;
|
||||||
|
this.listener[i] = null;
|
||||||
|
};
|
||||||
|
|
||||||
|
Board.prototype = {
|
||||||
|
maxPin: this.maxPin, // Nombre de Pins de la Board
|
||||||
|
pins: this.pins, // Liste des valeurs des pins (FALSE->libre, Pin()->prise)
|
||||||
|
listener: this.listener // Contient la classe d'amorcage pour chaque pin
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* BRANCHE UNE PUCE SUR LA Board
|
||||||
|
*
|
||||||
|
* @listener<Object> Interface contenant la carte
|
||||||
|
* @chip<Chip> Carte à brancher
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Board.prototype.plug = function(listener, chip){
|
||||||
|
/* [0] Vérification des paramètres
|
||||||
|
=========================================================*/
|
||||||
|
if( !(chip instanceof Chip) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* [1] Vérification des Pins
|
||||||
|
=========================================================*/
|
||||||
|
for( var i = 0 ; i < chip.pins.length ; i++ )
|
||||||
|
if( this.pins[i] instanceof Pin ) // si pin déja prise
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/* [2] Branchement + on lie l'interface
|
||||||
|
=========================================================*/
|
||||||
|
for( var i = 0 ; i < chip.pins.length ; i++ ){
|
||||||
|
this.pins[i] = chip.values[i];
|
||||||
|
this.listener[i] = listener;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/* MODIFICATION D'UNE VALEUR DE PIN
|
||||||
|
*
|
||||||
|
* @pinOrder<int> Indice de la pin
|
||||||
|
* @value<int> Valeur à attribuer
|
||||||
|
*
|
||||||
|
* @return nomRetour<typeRetour> Description du retour
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
Board.prototype.set = function(pinOrder, value){
|
||||||
|
/* [0] Vérification des paramètres
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On vérifie que @pinOrder est un entier et qu'il est branché */
|
||||||
|
if( parseInt(pinOrder) != pinOrder || pinOrder > this.maxPin ) return;
|
||||||
|
|
||||||
|
/* (2) On vérifie que la pin de @pinOrder est branchée */
|
||||||
|
if( !(this.pins[pinOrder] instanceof Pin) ) return;
|
||||||
|
|
||||||
|
/* (3) On vérifie que @value est un booléen, si oui : true=>255, false=>0 */
|
||||||
|
if( typeof value == 'boolean' )
|
||||||
|
value = value ? 255 : 0;
|
||||||
|
|
||||||
|
/* (4) On vérifie que @value est dans 0-255 */
|
||||||
|
else if( value != parseInt(value) || value < 0 || value > 255 ) return;
|
||||||
|
|
||||||
|
// On met @value en entier
|
||||||
|
value = parseInt(value);
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] On attribue la valeur
|
||||||
|
=========================================================*/
|
||||||
|
this.pins[pinOrder].set(value);
|
||||||
|
|
||||||
|
/* [2] On lance le listener
|
||||||
|
=========================================================*/
|
||||||
|
this.listener[pinOrder].update();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var Chip;
|
var Chip;
|
||||||
|
@ -14,42 +135,59 @@ var Chip;
|
||||||
|
|
||||||
/* CLASSE 'Chip' Correspond à un périphérique processeur
|
/* CLASSE 'Chip' Correspond à un périphérique processeur
|
||||||
*
|
*
|
||||||
* @Pin1<int> Numéro de la première PIN
|
* @chip<String> Type de communication
|
||||||
* @Pin2<int> Numéro de la seconde PIN
|
* @pins<Array> Numéros des pins de la carte
|
||||||
* @Pin...<int> Numéro de la ... PIN
|
|
||||||
*
|
*
|
||||||
* @return Chip<Chip> Retourne une instance de 'Chip'
|
* @return Chip<Chip> Retourne une instance de 'Chip'
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
Chip = function(){
|
Chip = function(type, pins){
|
||||||
/* On initialise les attributs */
|
/* [0] Vérification des paramètres
|
||||||
this.pins = [];
|
=========================================================*/
|
||||||
this.pin = {};
|
/* (1) @type de carte */
|
||||||
|
if( typeof type != 'string' ) return;
|
||||||
|
|
||||||
/* On vérifie qu'on a que des nombres entiers */
|
type = type.toLowerCase();
|
||||||
for( var i = 0 ; i < arguments.length ; i++ )
|
if( ['spi', 'i2c', 'serial'].indexOf(type) == -1 ) return;
|
||||||
if( parseInt(arguments[i]) == arguments[i] ){
|
|
||||||
this.pins.push( parseInt(arguments[i]) );
|
/* (2) @pins un tableau d'entiers */
|
||||||
this.pin[ parseInt(arguments[i]) ] = 0;
|
if( !(pins instanceof Array) ) return;
|
||||||
}
|
|
||||||
}
|
for( var i = 0 ; i < pins.length ; i++ )
|
||||||
|
if( parseInt(pins[i]) != pins[i] ) return;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [1] On récupère les valeurs
|
||||||
|
=========================================================*/
|
||||||
|
/* (1) On enregistre le type */
|
||||||
|
this.type = type;
|
||||||
|
|
||||||
|
/* (2) On enregistre la liste des pins et leurs valeurs */
|
||||||
|
this.pins = pins;
|
||||||
|
this.values = [];
|
||||||
|
|
||||||
|
for( var i = 0 ; i < this.pins.length ; i++ )
|
||||||
|
this.values[i] = new Pin(0);
|
||||||
|
};
|
||||||
|
|
||||||
Chip.prototype = {
|
Chip.prototype = {
|
||||||
pin: this.pin, // Liste des numéros des Pin's et leurs valeur
|
type: this.type, // Type de communication ('spi', 'i2c', ou 'serial')
|
||||||
pins: this.pins // Liste des numéros des Pin's (ordonnée)
|
pins: this.pins, // Liste des numéros des Pin's (ordonnée)
|
||||||
|
values: this.values // Liste des valeurs des pins (ordonnée) (objets Pin() )
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ATTRIBUE UNE VALEUR A UNE PIN DONNEE
|
/* ATTRIBUE UNE VALEUR A UNE PIN DONNEE
|
||||||
*
|
*
|
||||||
* @pin<int> Numéro de la pin
|
* @pinOrder<int> Indice de la pin (0, 1, 2, ...)
|
||||||
* @value<int/Boolean> Valeur dans 0-255 (ou booléen) à attribuer
|
* @value<int/Boolean> Valeur dans 0-255 (ou booléen) à attribuer
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
Chip.prototype.setPin = function(pin, value){
|
Chip.prototype.setPin = function(pinOrder, value){
|
||||||
/* [0] Vérification des paramètres
|
/* [0] Vérification des paramètres
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) On vérifie que @pin est un entier et qu'elle existe */
|
/* (1) On vérifie que @pinOrder est un entier et qu'il est un indice de @this.pins */
|
||||||
if( parseInt(pin) != pin || !this.pin.hasOwnProperty(pin) ) return;
|
if( parseInt(pinOrder) != pinOrder || this.pins.length >= pinOrder ) return;
|
||||||
|
|
||||||
/* (2) On vérifie que @value est un booléen, si oui : true=>255, false=>0 */
|
/* (2) On vérifie que @value est un booléen, si oui : true=>255, false=>0 */
|
||||||
if( typeof value == 'boolean' )
|
if( typeof value == 'boolean' )
|
||||||
|
@ -64,7 +202,7 @@ var Chip;
|
||||||
|
|
||||||
/* [1] On attribue la valeur
|
/* [1] On attribue la valeur
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
this.pin[pin] = value;
|
this.values[pinOrder].set(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,27 +213,27 @@ var Chip;
|
||||||
*/
|
*/
|
||||||
Chip.prototype.setPins = function(values){
|
Chip.prototype.setPins = function(values){
|
||||||
for( var i = 0 ; i < this.pins.length ; i++ )
|
for( var i = 0 ; i < this.pins.length ; i++ )
|
||||||
this.setPin( this.pin[this.pins[i]], values[i] );
|
this.setPin( i, values[i] );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* RECUPERE LA VALEUR D'UNE PIN DONNEE
|
/* RECUPERE LA VALEUR D'UNE PIN DONNEE
|
||||||
*
|
*
|
||||||
* @pin<int> Numéro de la pin à lire
|
* @pinOrder<int> Indice de la pin à lire
|
||||||
*
|
*
|
||||||
* @return value<int> Valeur entière dans 0-255
|
* @return value<int> Valeur entière dans 0-255
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
Chip.prototype.getPin = function(pin){
|
Chip.prototype.getPin = function(pinOrder){
|
||||||
/* [0] Vérification des paramètres
|
/* [0] Vérification des paramètres
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
/* (1) On vérifie que @pin est un entier et qu'elle existe */
|
/* (1) On vérifie que @pin est un entier et qu'elle existe */
|
||||||
if( parseInt(pin) != pin || !this.pin.hasOwnProperty(pin) ) return;
|
if( parseInt(pinOrder) != pinOrder || this.pins.length <= pinOrder ) return false;
|
||||||
|
|
||||||
|
|
||||||
/* [1] On retourne la valeur
|
/* [1] On retourne la valeur
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
return this.pin[pin];
|
return this.values[pinOrder].get();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -108,7 +246,7 @@ var Chip;
|
||||||
var values = [];
|
var values = [];
|
||||||
|
|
||||||
for( var i = 0 ; i < this.pins.length ; i++ )
|
for( var i = 0 ; i < this.pins.length ; i++ )
|
||||||
values.push( this.getPin( this.pins[i] ) );
|
values[i] = this.getPin( i );
|
||||||
|
|
||||||
return values;
|
return values;
|
||||||
};
|
};
|
||||||
|
@ -118,6 +256,8 @@ var Chip;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var LedInterface;
|
var LedInterface;
|
||||||
|
|
||||||
(function(){
|
(function(){
|
||||||
|
@ -151,8 +291,8 @@ var LedInterface;
|
||||||
/* APPLIQUE LA COULEUR EN FONCTION DES VALEURS DE LA 'CHIP'
|
/* APPLIQUE LA COULEUR EN FONCTION DES VALEURS DE LA 'CHIP'
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
LedInterface.prototype.apply = function(){
|
LedInterface.prototype.update = function(){
|
||||||
this.container.style.background = 'rgb('+this.chip.pin[0]+','+this.chip.pin[1]+','+this.chip.pin[2]+')';
|
this.container.style.backgroundColor = 'rgb('+this.chip.getPin(0)+','+this.chip.getPin(1)+','+this.chip.getPin(2)+')';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -196,7 +336,7 @@ var RelayInterface;
|
||||||
/* APPLIQUE L'ACTIVATION EN FONCTION DES VALEURS DE LA 'CHIP'
|
/* APPLIQUE L'ACTIVATION EN FONCTION DES VALEURS DE LA 'CHIP'
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
RelayInterface.prototype.apply = function(){
|
RelayInterface.prototype.update = function(){
|
||||||
if( this.chip.pin[0] )
|
if( this.chip.pin[0] )
|
||||||
this.container.addClass('active');
|
this.container.addClass('active');
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue