FirewareOriginMAT.c 2.8 KB
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include "JZsdkLib.h"
#include "BaseConfig.h"
#include "DeviceInfo/SerialNumberProc/SerialProc.h"
#include "JZsdk_Base/JZsdk_Code/JZsdk_SMT_Code.h"
#include "./FirewareOriginMAT.h"

static int g_OriginRegionNum = ORIGIN_DEFAULT;

/*****************
 * 
 *  属地初始化
 * 
 * 
 * *******************/
T_JZsdkReturnCode FOMAT_FirewareOriginRegion_Init(int SerialType, unsigned char *SerialNumber, unsigned int SerialNumberLen)
{
    //没有定义过的序列号,或是没有序列号
    if (SerialType == UNDEFINED_SNM || SerialType == STANDARD_DJI_SNM)
    {
        if (FIRMWARE_ORIGIN == DOMESTIC_VERSION)
        {
            g_OriginRegionNum = ORIGIN_CN;
        }
        else if (FIRMWARE_ORIGIN == OVERSEAS_VERSION)
        {
            g_OriginRegionNum = ORIGIN_EN;
        }
        else
        {
            g_OriginRegionNum = ORIGIN_CN;
        }
        
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }

    //旧类型的
    if (SerialType == STANDARD_JZ_1_SNM)
    {
        if (FIRMWARE_ORIGIN == DOMESTIC_VERSION)
        {
            g_OriginRegionNum = ORIGIN_CN;
        }
        else if (FIRMWARE_ORIGIN == OVERSEAS_VERSION)
        {
            g_OriginRegionNum = ORIGIN_EN;
        }
        else
        {
            g_OriginRegionNum = ORIGIN_CN;
        }
        
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }
    
    //新序列号类型
    if (SerialType == STANDARD_JZ_2_SNM)
    {
        //检测是否是国内的
        if ((SerialNumber[4] == 'C' || SerialNumber[4] == 'c') 
            && (SerialNumber[5] == 'N' || SerialNumber[5] == 'n'))
        {
            g_OriginRegionNum = ORIGIN_CN;
            return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
        }
        
        //检测是否是en通用区的 
        if ((SerialNumber[4] == 'E' || SerialNumber[4] == 'e') 
            && (SerialNumber[5] == 'N' || SerialNumber[5] == 'n'))
        {
            g_OriginRegionNum = ORIGIN_EN;
            return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
        }
		
		//检测是否是na定制区域固件
        if ((SerialNumber[4] == 'N' || SerialNumber[4] == 'n') 
            && (SerialNumber[5] == 'A' || SerialNumber[5] == 'a'))
        {
            g_OriginRegionNum = ORIGIN_EN;
            return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
        }

        //无匹配序列号
        if (FIRMWARE_ORIGIN == DOMESTIC_VERSION)
        {
            g_OriginRegionNum = ORIGIN_CN;
        }
        else if (FIRMWARE_ORIGIN == OVERSEAS_VERSION)
        {
            g_OriginRegionNum = ORIGIN_EN;
        }
        else
        {
            g_OriginRegionNum = ORIGIN_CN;
        }   
    }
    
}

/*******************
 * 
 *  属地获取
 * 
 * *****************/
T_JZsdkReturnCode FOMAT_Get_FirewareOriginRegion()
{
    return g_OriginRegionNum;
}