Q&A Home > 고객지원 > 기술지원 > Q&A
relay 옵션 보드를 제어하기 위해 해당 명령문을 조건문안에 넣어도 옵션보드의 스위치 옵션 변경이 안됩니다.
카테고리Ubiquitous Sensor Network
작성자김추도 아이피121.158.12.93
작성일10-07-23 13:57 조회수2623
파일

바쁘신 와중에 두서 없이 질문을 드려서 죄송합니다.
제가 조도값을 받아와 패킷을 분석하고 분석한 조도값이 일정값 이하이면 해당 MOTE로 메시지를 전송하여 RELAY 보드를 제어하여 조명을 관리하는 시스템을 만들고 있습니다.
아래같이 "TOSH_SET_PW5_PIN();"의 명령문을 넣어서 릴레이보드의 스위치를 ON시키는 것을 구현하였고, 또한 실제로 보드에도 INC.1 LED가 불이 들어와 설정을 제대로 했다고도 표시를 하는데 막상 꼬마전구와 건전지를 외부전력으로 전선은 "+"단과 "COM" 단에 각각 연결을 했는데도 켜지지가 않습니다. 혹시나 해서 "+"단의 전선을 "-"단에 연결해보니 꼬마전구에 불이 들어와버립니다. 이는 스위치가 OFF상태인 걸로 알고 있는데 제가 잘못 알고 있는 것입니다까? 원인이 무엇인지 알고 싶습니다. 부탁드리겠습니다.




event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr m) {
   
    struct exUSN_Msg *pack;
    if(m->length ==2)
    {
         memcpy(&RXUartPacket, m->data, sizeof(struct TestUart));

 if (RXUartPacket.CMDtype == TOS_LOCAL_ADDRESS) {
  if (RXUartPacket.CMD_1 == LED_ON){
   call Leds.redOn();
   TOSH_SET_PW5_PIN();
   TOSH_SET_PW6_PIN();
  } else if (RXUartPacket.CMD_1 == LED_OFF){
   call Leds.redOff();
   TOSH_CLR_PW5_PIN();
   TOSH_CLR_PW6_PIN();

  }

 }
            else
           {
                call SendMsg.send(TOS_BCAST_ADDR, sizeof(struct TOS_Msg), m);
                call Leds.yellowToggle();
           }

        
    }
     else
    {
         pack = (struct exUSN_Msg *)m->data;
    }
   
   

    // PRI정보와 pack->seq, pack->SenderID 값을 비교하여 예전에 전송한 패킷인지 겁사
    // ... (직접 작성해 보시기 바랍니다.)
    // 만약 전송한 패킷을 경우 바로 return.

  // If packet has been generated by local node
  if ((pack->originNode == TOS_LOCAL_ADDRESS) && (pack->TTL == 0))
  {
    pack->seq = getSeqNo();
  }
  // If message is new at node
  else if (inLog(pack->seq, pack->originNode) == FALSE)
  {
    pack->SenderID = TOS_LOCAL_ADDRESS;
    pack->TTL--;
  }
  else
  {
    dbg(DBG_TEMP, "MHFloodingPSM - Failed to select route for duplicate packet\n");
    return FAIL;
  }

    if ( TOS_LOCAL_ADDRESS == 0 )
    {
 if (call SendMsg.send(TOS_UART_ADDR, sizeof(struct TOS_Msg), m)){
      call Leds.yellowToggle();
 }

    } else {

       
 pack->TTL--;
 if (pack->TTL == 0) //TTL CHECK
  return m;  

 pack->SenderID = TOS_LOCAL_ADDRESS;
       
 // 전송할 패킷의 정보를 PRI에 저장
 // ... (직접 작성해 보시기 바랍니다.)
            addLogEntry(pack->seq, pack->originNode);

 if (call SendMsg.send(TOS_BCAST_ADDR, sizeof(struct TOS_Msg), m)){
  call Leds.redToggle();
 }
    }

    return m;
  }

}
 


다음글 HBE-CAN키트의 JTAG 포트에 대해서...
이전글 기존에 산소포화도...

댓글 등록은 로그인 하신후 이용하실 수 있습니다.