Eric Jung / GMMP_mbed_Ethernet_Reinit

Dependents:   ThingPlug_Ethernet_Example

Fork of GMMP_mbed by Eric Jung

Embed: (wiki syntax)

« Back to documentation index

M2M GW/Device 등록

M2M GW/Device 등록

등록 절차는 현장에 설치된 M2M GW가 서비스 수행을 시작하기 위해서 최초로 수행해야 하는 절차이다. More...

Functions

int GO_Reg (const char *pszGWID, const char *pszManufactureID)
 GW,Device 등록 절차 진행 명령 함수, 옵션으로 암호화 진행 유무 Flag가 있다.

Detailed Description

등록 절차는 현장에 설치된 M2M GW가 서비스 수행을 시작하기 위해서 최초로 수행해야 하는 절차이다.


1. GW 등록 절차
(1) M2M GW는 M2M Portal을 통해 사전에 등록된 자기 자신의 AUTH_ID(MSISDN or MAC Address), Domain Code, Manufacture ID를 전송한다.
(2) OMP는 M2M GW가 전송한 AUTH_ID(MSISDN or MAC Address), Manufacture ID 값이 정상인지 확인하고 이상이 없으면 M2M GW로 Auth Key, GW ID를 부여하여 응답 메시지를 전송한다.
(3) OMP에서 M2M GW의 등록이 정상적으로 이루어지지 않으면 응답 메시지의 Result Code에 Fail Code 값을 포함하여 M2M GW로 전송한다.
(4) 3회 이상 M2M GW의 등록이 정상적이지 않은 경우 M2M GW는 더 이상 등록 요청을 수행하지 않고 GW 장애 절차를 수행한다.(GMMP 규격 논외)
(5) M2M GW의 등록이 정상적으로 수행되었으나 Profile 정보(주기보고의 주기정보 및 Heartbeat 주기정보 등)가 없는 경우에는 GO_Profile을 수행한다.

NOTE :
[사전 등록] M2M GW 등록 절차 수행을 위해서는 사전에 M2M 포털을 통해 등록 되어야 한다.
[ID 등록] M2M GW의 Auth ID(MSISDN, MAC) 또는 Manufacture ID가 변경되었으나 M2M 포털을 통해 갱신 등록되지 않으면 M2M 단말 등록 절차는 Fail 처리 된다.
[정상 등록] 등록 요청이 정상적으로 수행된 경우 더 이상 등록 절차를 수행 하지 않는다.
[재 등록 요청] OMP 에 등록 과정을 수행한 단말에 대해서 전원을 껐다(Off) 켜(On)는 경우에는 재 등록을 수행할 필요가 없다. 단, 할당 받은 GW ID, Auth Key, Domain Code 등의 값이 유실되거나 삭제된 경우에는 재 등록 요청을 수행 할 수 있다.
[할당 Field 사용] Auth Key 값은 GMMP Common Header의 Auth_key 필드에 설정되며, Domain Code, GW ID 값은 Message Type별 Field 정의영역 부분에 설정되어 반환 된다. 이후 모든 메시지에는 반드시 OMP에서 할당된 Auth Key, GW ID 값을 해당 메시지에 이용되어야 한다.
[중복 등록 허용] 이미 등록되어 있는 M2M GW에 대해 재 등록 요청을 하는 경우에는 중복 등록이 허용이 된다. 이때 전달되는 Auth Key, GW ID 값은 이전의 등록절차에서 할당 되었던 동일한 값이 전달된다.
[M2M GW Timeout] M2M GW에서 OMP로 Request 명령을 전송한 뒤 응답이 없는 경우 Timeout 처리를 수행한다. 이 값은 Profile 정보에 포함 되어 있으며, OMP의 제어 명령에 의해서 변경 될 수 있다. (Timeout은 default로 최소 30sec 이상으로 설정되어야 한다)

전송 패킷 : Struct_Reg_GW.h, Struct_Reg_Device.h 참조


Function Documentation

int GO_Reg ( const char *  pszGWID,
const char *  pszManufactureID 
)

GW,Device 등록 절차 진행 명령 함수, 옵션으로 암호화 진행 유무 Flag가 있다.


등록 절차는 현장에 설치된 M2M GW가 서비스 수행을 시작하기 위해서 최초로 수행해야 하는 절차이다.
등록 절차를 통해 GW ID, Device ID를 OMP로 부터 제공 받는다.

Warning:
GW 등록 절차가 진행되어야만 Device 등록 절차를 진행 할 수 있다.
Parameters:
pszGWIDOMP에서 제공받은 GW ID, NULL이면 GW 등록, 아니면 Device 등록 절차를 진행한다.
pszManufactureIDM2M GW,Device의 Manufacture ID이다.

  • AlphaNumeric : 문자,숫자 조합, 특수문자제외, SPACE 허용 안하며 빈자리는 0x00(NULL)로 채운다.
    Ex) 공장 제조 Serial No. : “AVB12132SET23DT”, “SKTSerial“
Returns:
성공 : GMMMP_SUCCESS, 실패 : ErrorCode.h 참조
 GW/Device 등록 샘플 코드 (Sample_Registration 샘플 참조)

int GW_Reg()
{
    int nRet = GMMP_SUCCESS;

    nRet = GO_Reg(NULL, pszGWMFID, false);

    if(nRet < 0)
    {
        printf("GW GO_Reg Error : %d\n", nRet);

        return 1;
    }

    return 0;
}

int Device_Reg()
{
    int nRet = GMMP_SUCCESS;

    nRet = GO_Reg(GetGWID (), pszDeviceMFID, false);

    if(nRet < 0)
    {
        printf("GW GO_Reg Error : %d\n", nRet);

        return 1;
    }

    return 0;
}

int Init()
{
    if(Initialize(szServerIP, nServerPort, pszDomainCode , pszGWAuthID, GMMP_ON_LOG, nErrorLevel, GMMP_NETWORK_ALYWAYS_OFF, "Log") != 0)
    {
        printf("Server Connect Error\n");

        return 1;
    }

    SetCallFunction( (void*)Recv);

    return 0;
}

int main()
{
    if(Init() != 0)
    {
        printf("Init Error");
        return -1;
    }

    if(GW_Reg() != 0)
    {
        printf("GW_Reg Error");
        return -1;
    }

    if(Device_Reg() != 0)
    {
        printf("Device_Reg Error");
        return -1;
    }

    return 0;

}

Definition at line 287 of file GMMP.cpp.