AlarmGeneralFilie.c 4.9 KB
Newer Older
hu's avatar
hu committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
#include "AlarmGeneralFilie.h"

/*报警提示信息状态数据表1*/
uint8_t Alarm_Status[100]; /*[0]数据不使用,其它数组序号对应报警编号
                            [i] bit0:=1 对应的报警已发生,=0对应的报警已取消  (与报警请求表和队列同步)
                            [i] bit1:=1 表示已完成nS的文字报警显示(2S或4S)   (完成第一次报警显示)
                            [i] bit2:=1 表示报警在循环显示队列中
                            [i] bit3:=0 表示当前报警是第1次显示, =1 表示当前报警是非第1次显示
                            [i] bit4:=1 表示对应编号的声音报警已经完成
                            [i] bit5:=1 表示对应编号的声音报警触发过
                            [i] bit6:
                            [i] bit7:=1表示在行车电脑界面显示过(新加)*/

uint8_t g_PowerSt;
const uint8_t OSUnMapTbl[256] =
{
    0u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x00 to 0x0F                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x10 to 0x1F                             */
    5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x20 to 0x2F                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x30 to 0x3F                             */
    6u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x40 to 0x4F                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x50 to 0x5F                             */
    5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x60 to 0x6F                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x70 to 0x7F                             */
    7u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x80 to 0x8F                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0x90 to 0x9F                             */
    5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xA0 to 0xAF                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xB0 to 0xBF                             */
    6u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xC0 to 0xCF                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xD0 to 0xDF                             */
    5u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, /* 0xE0 to 0xEF                             */
    4u, 0u, 1u, 0u, 2u, 0u, 1u, 0u, 3u, 0u, 1u, 0u, 2u, 0u, 1u, 0u  /* 0xF0 to 0xFF                             */
};

const uint8_t OSMapTbl[8] =
{

    0x01u,
    0x02u,
    0x04u,
    0x08u,
    0x10u,
    0x20u,
    0x40u,
    0x80u,

};

/**@brief 设置查找表中所在分组中的位置
* @param[in]  *p8 需要设置的查找表
* @param[in]  m_index 元素位置
* @return
*/
void General_Set_MapBit(uint8_t p8[], uint8_t m_index)
{
    p8[m_index >> 3u] |= OSMapTbl[m_index & 7u];
}

/**@brief 清除查找表中所在分组中的位置
* @param[in]  *p8 需要清除的查找表
* @param[in]  m_index 元素位置
* @return
*/
void General_Clr_MapBit(uint8_t p8[], uint8_t m_index)
{
    p8[m_index >> 3u] &= (uint8_t)(~OSMapTbl[m_index & 7u]);
}

/**@brief 设置报警状态数组指定位
* @param[in]  -m_Idx -报警编号
* @param[in]  -m_bit -指定bit
* @return  None
*/
void General_AlarmSt_Set(uint8_t m_Idx, uint8_t m_bit)
{
    Set_Bit(Alarm_Status[m_Idx], m_bit);
}

/**@brief 清除报警状态数组指定位
* @param[in]  -m_Idx -报警编号
* @param[in]  -m_bit -指定bit
* @return  None
*/
void General_AlarmSt_Clr(uint8_t m_Idx, uint8_t m_bit)
{
    Clr_Bit(Alarm_Status[m_Idx], m_bit);
}

/**@brief 获取报警状态数组指定位是否置1
* @param[in]  -m_Idx -报警编号
* @param[in]  -m_bit -指定bit
* @return  1 置位  0 未置位
*/
uint8_t General_AlarmSt_True(uint8_t m_Idx, uint8_t m_bit)
{
    uint8_t m_Result;

    if (Bit_Is_Set(Alarm_Status[m_Idx], m_bit))
    {
        m_Result = 1u;
    }
    else
    {
        m_Result = 0u;
    }
    return m_Result;
}

/**@brief 获取报警状态数组指定位是否清0
* @param[in]  -m_Idx -报警编号
* @param[in]  -m_bit -指定bit
* @return  1 清零  0 未清零
*/
uint8_t General_AlarmSt_False(uint8_t m_Idx, uint8_t m_bit)
{
    uint8_t m_Result;
    if (Bit_Is_Clr(Alarm_Status[m_Idx], m_bit))
    {
        m_Result = 1u;
    }
    else
    {
        m_Result = 0u;
    }
    return m_Result;
}

uint8_t General_AlarmSt_Value(uint8_t m_Idx)
{
    uint8_t m_Result;
    m_Result = Alarm_Status[m_Idx];
    return m_Result;
}

void General_Set_PowerSt(uint8_t PowerSt)
{
    g_PowerSt = PowerSt;
}

/*
0---IG OFF
1---IG ON
*/
uint8_t General_Get_PowerSt(void)
{
    uint8_t m_PowerSt;

    m_PowerSt = g_PowerSt;

    return m_PowerSt;
}