simulationgm.nc

来自「无线传感器密钥管理算法」· NC 代码 · 共 75 行

NC
75
字号
/*									tab:4
 *
 *
 * Copyright (C) 2004 by North Carolina State University.  
 * All rights reserved.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose, without fee, and without written agreement is
 * hereby granted, provided that the above copyright notice, the following
 * two paragraphs and the author appear in all copies of this software.
 * 
 * IN NO EVENT SHALL THE NORTH CAROLINA STATE UNIVERSITY BE LIABLE TO ANY PARTY 
 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING 
 * OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE NORTH
 * CAROLINA STATE UNIVERSITY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * 
 * THE NORTH CAROLINA STATE UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
 * ON AN "AS IS" BASIS, AND THE NORTH CAROLINA STATE UNIVERSITY HAS NO OBLIGATION 
 * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
 *
 * Authors: Donggang Liu
 * Date:    4/25/04
 */

includes PolyOne;

module SimulationGM {
    provides {
	   interface StdControl;
    }
    uses {
	   interface Sensor; 
	   interface SetupServer;
    }
}

implementation {
 
 	PolyShare secret[2];
 	uint16_t compromised[64];
 	uint16_t real_ID;
 	
  command result_t StdControl.init(){                

	call SetupServer.init();  
	if(TOS_LOCAL_ADDRESS==0) real_ID=257;
	if(TOS_LOCAL_ADDRESS==1) real_ID=258;
	if(TOS_LOCAL_ADDRESS==2) real_ID=513;
	
	call SetupServer.SecretAssign(real_ID, (uint8_t *)secret);
	call Sensor.init(real_ID,(uint8_t *)secret,compromised);
    	return SUCCESS;
  }
  
  command result_t StdControl.start() {
     
     if(TOS_LOCAL_ADDRESS==2) call Sensor.establish_key(258);
//     if(TOS_LOCAL_ADDRESS==0) call Sensor.establish_key(513);
//	call Sensor.establish_key(1);
//     } else call Sensor.establish_key(2);
     return SUCCESS;
  }
  
  command result_t StdControl.stop() {
     return SUCCESS;
  }

  event result_t Sensor.keyEstablished(uint16_t dID, uint8_t *key) {
     return SUCCESS;
  }
  
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?