Project

General

Profile

Сохранение расписания в XML

Расписание вещания на день можно сохранять в XML файл. В сохраненном XML файле содержится полная информация обо всех блоках и элементах расписания на день. Иp этого файла расписание может быть загружено на тот же или другой день.

Сохранение расписания в XML и загрузка расписания из XML вызывается из меню расписания в модуле просмотра расписания.
Пункты меню:

  • Меню\Расписание\Сохранить в XML файл
  • Меню\Расписание\Загрузить из XML файла

Структура XML файла:

<BLK_LIST> 
    <root> <!-- Блок расписание -->
        <!-- Тэги описывающие блок -->
        <ELEM> <!-- Элемент расписания -->
            <!-- Тэги описывающие элемент -->
        </ELEM>
        <ELEM> <!-- Элемент блока расписания -->
                ...
        </ELEM>
        <ELEM> <!-- Элемент блока расписания -->
                ...
        </ELEM>
    </root>
    <root> <!-- Блок расписание -->
        <!-- Тэги описывающие блок -->
        <ELEM> <!-- Элемент расписания -->
            <!-- Тэги описывающие элемент -->
        </ELEM>
        <ELEM> <!-- Элемент блока расписания -->
                ...
        </ELEM>
        <ELEM> <!-- Элемент блока расписания -->
                ...
        </ELEM>
    </root>
</BLK_LIST>

XML файлы с описанием полей:

Пример XML файла с описанием полей:

<BLK_LIST> 
    <root> <!-- Начало блока -->
        <FileName>34961a97.blk</FileName> <!-- Имя файла блока -->
        <Type dt="i4">16</Type> <!-- Тип блока (1 - Реклама, 16 - Музыка, 4 - Программа, 2 - Новости, 1073741824 (0x40000000) - Без типа) -->
        <Name>Музыка</Name> <!-- Пользовательское имя блока -->
        <Time dt="i4">0</Time> <!-- Плановое время запуска (время типа i4 рассчитывается как колличество миллисекунд от начала суток) -->
        <Size dt="i4">1200000</Size> <!-- Плановая длительность (millisec) -->
        <CurId dt="i4">33</CurId> <!-- Счетчик генератора для идентификатора элементов в нутри блока -->
        <Flags dt="i4">32</Flags> <!-- Флаги привязок ко времени и т.д.. Вкратце (не полный список):

        /// <summary>
        /// Не ранее
        /// </summary>
        NoLate = 0x000001,

        /// <summary>
        /// Не позднее
        /// </summary>
        NoEarl = 0x000004,

        /// <summary>
        /// Обрывать блоки
        /// </summary>
        SplitBlk = 0x000008,

        /// <summary>
        /// Обрывать фонограммы
        /// </summary>
        SplitPh = 0x000010,

        /// <summary>
        /// Фиксировать время
        /// </summary>
        TimeFix = 0x000020,


        AutoBlock = 0x000040,
        InsideProgram = 0x000080,
        ManualLoad = 0x000100,
        MusOverplan = 0x000200,

        ExtBlkCmdOnStart = 0x000400,
        ExtBlkCmdOnStop = 0x000800,
        ExtBlkCmdOnOutro = 0x001000,

        ExtBlkCmd = ExtBlkCmdOnStart | ExtBlkCmdOnStop | ExtBlkCmdOnOutro,

        ETimeFix = 0x002000,
        NTimeFix = 0x004000,

        TimeMask = NoLate | NoEarl | SplitBlk | SplitPh | TimeFix | ETimeFix | NTimeFix,

        AutoCalcTime = 0x008000, // for MAG, count time by clock position
        Regional = 0x010000,
        MainInRegion = 0x020000,
        DisableUpdateRegion = 0x040000

        -->
        <NumberOfSubjects>0</NumberOfSubjects> <!-- Количество сюжетов в блоке -->
        <NumberOfSbjAudioItems>0</NumberOfSbjAudioItems> <!-- Количество звуковых элементов в сюжетах в блоке -->
        <PlaylistDateStr>понедельник 14.07.14</PlaylistDateStr>
    <ValStorage> <!-- Пользовательские свойства блока -->
      <FloatUserProperty dt="f">123.1230011</FloatUserProperty> <!-- Численное свойство в формате с плавающей точкой. -->
      <IntUserUroperty dt="i4">12345</IntUserUroperty> <!-- Численное свойство в формате с фиксированной точкой.  -->
      <StringUserProperty>String value</StringUserProperty> <!-- Текстовое свойство. -->
    </ValStorage>    
        <ELEM> <!-- Элемент расписания -->
            <ID dt="i4">1</ID> <!-- Id элемента в блоке (в пределах блока уникально) -->
            <PhonoType dt="i4">4</PhonoType> <!-- Тип элемента:

            Unknown = 0,
            Pause = 3,
            Phonogram = 4,
            Media = 8,
            Info = 10,
            Subject = 14,
            Rotate = 15,
            Video = 16,
            PlaceHolder = 17

            -->
            <State dt="i4">0</State> <!-- Состояние элемента, служебное поле -->
            <Cmd dt="i4">0</Cmd> <!--  -->
            <Size dt="i4">0</Size> <!-- Плановая длительность (мс) -->
            <Freq dt="i4">48000</Freq> <!-- Частота дискретизации (Hz)-->
            <SmplRealSize dt="i4">899713</SmplRealSize> <!-- Реальное количество сэмплов в исходном звуковом файле -->
            <DB_ModifyDT dt="i8">130336963801170000</DB_ModifyDT> <!-- Время модификации элемента МБД (время с типом i8 высчитывается как количество секунд * 10000000, начиная с 1 января 1601 года) -->
            <JnglBtn dt="i4">-1</JnglBtn> <!-- Кнопка джингл-машины, на которую назначен элемент -->
            <StartTime dt="i4">4795</StartTime> <!-- Время старта элемента (реальное либо плановое) (мс от начала суток) -->
            <PlanStartTime dt="i4">0</PlanStartTime> <!-- Плановый старт элемента (мс от начала суток) -->
            <Runtime dt="i4">15975</Runtime> <!-- Рантайм в сэмплах -->
            <StopTime dt="i4">23539</StopTime> <!-- Время остановки (мс) -->
            <LastAirStartTime dt="i4">4795</LastAirStartTime> <!-- Реальное время выхода элемента (если есть галочка о выходе элемента) (мс) -->
            <FONO_INFO>
                <FadeOut dt="i4">103699</FadeOut> <!-- Все, что ниже относится к разметке, считается в сэмплах -->
                <StartNext dt="i4">132927</StartNext>
                <LabelFlags dt="i4">1</LabelFlags>
                <FadeInType dt="i4">1</FadeInType>
                <FadeOutType dt="i4">1</FadeOutType>
                <MaxLvlOk dt="i4">1</MaxLvlOk> <!-- Произведен ли расчет уровня для элемента -->
                <MaxLvl dt="f">-3.940502882</MaxLvl> <!-- Значение пикового уровня -->
                <Gain dt="f">0</Gain> <!-- Усиление (dB) -->
                <Type dt="i4">2</Type> <!-- Тип элемента:

                Unknown = 0,
                Commercial = 1,
                Jingle = 2,
                Music = 3,
                Program = 4,
                News = 5

                -->
                <FileName>\EUROPA-AIR-FS\EUROPA\SND\Актуальная часовая.wav</FileName>
                <dbID dt="i4">6662</dbID> <!-- Id элемента в МБД -->
                <ID_Number>1</ID_Number>
                <VersionIsNull dt="i4">1</VersionIsNull> <!--  -->
                <FONO_STRING_INFO>
                    <Name>CHASOVAIA</Name> <!-- Название элемента -->
                    <Artist>Chelentano</Artist> <!-- Artist -->
                    <Author>RetrLogin</Author> <!-- Author -->
                    <Album>Help</Album> <!-- Album -->
                    <Category>LINKER\j;Category7</Category> <!-- Список категорий, к которым принадлежит элемент разделенный через ';' -->
                    <DbName>EUROPA</DbName> <!-- Имя базы данных -->
                    <CreateDT dt="i8">0</CreateDT> <!-- Не используется -->
                    <ModifyDT dt="i8">130144791024431404</ModifyDT> <!-- Время модификации файла FILETIME -->
                </FONO_STRING_INFO>
                <FONO_ROTATOR_INFO/> <!-- Параметры ротации в МАГе -->
            </FONO_INFO>
            <SUBJECT/>
      <UserAttribs> <!-- Пользовательские атрибуты МБД. перечисляемые атрибуты элементов МБД -->
        <ELEM> <!-- Пользовательский атрибут -->
          <Name>fm</Name> <!-- Название атрибута -->
          <ID dt="i4">10</ID> <!-- Идентификатор значения атрибута в МБД -->
          <Value>classic</Value> <!-- Значение атрибута в МБД -->
        </ELEM>
        <ELEM>
          <Name>mus_1</Name>
          <ID dt="i4">14</ID>
          <Value>val2</Value>
        </ELEM>
      </UserAttribs>
      <ExtendedFields>
                <VersionCount>0</VersionCount>
            </ExtendedFields>
      <ValStorage> <!-- Пользовательские свойства элемнта. Свойства заданные элементу пользователем -->
        <FloatUserProperty dt="f">123.1230011</FloatUserProperty> <!-- Численное свойство в формате с плавающей точкой. --> 
        <IntUserUroperty dt="i4">12345</IntUserUroperty> <!-- Численное свойство в формате с фиксированной точкой.  --> 
        <StringUserProperty>String value</StringUserProperty> <!-- Текстовое свойство. -->
      </ValStorage>
    </ELEM>
    </root>
    <root> <!-- Блок распиания -->
        <FileName>5db6eb68.blk</FileName>
        <Type dt="i4">1</Type>
        <Name>Block name</Name>
        <Time dt="i4">28200000</Time>
        <Size dt="i4">245000</Size>
        <CurId dt="i4">45</CurId>
        <Flags dt="i4">0</Flags>
        <NumberOfSubjects>0</NumberOfSubjects>
        <NumberOfSbjAudioItems>0</NumberOfSbjAudioItems>
        <PlaylistDateStr>понедельник 14.07.14</PlaylistDateStr>
        <RMT> <!-- Команды управления блока -->
            <ELEM>
                <ShName>5A</ShName> <!-- Короткое название -->
                <Name>5_AMPV</Name> <!-- Полное название -->
                <Cmd dt="b">53455420564D49582E53554223352E494E23312053746174653D4F4E0D0A53455420564D49582E53554223352E494E23322053746174653D4F46460D0A</Cmd> <!-- Данные команды -->
                <AtStart dt="i4">1</AtStart> <!-- 1 - запуск по старту, 2 - по стопу -->
                <Preroll dt="i4">0</Preroll> <!-- Упреждение -->
                <ExtStr>{DST=AXIA_VMIX_5}</ExtStr> <!-- Дополнительные параметры (DST - устройство назначения) -->
            </ELEM>
        </RMT>
        <ValStorage/>
    </root>
</BLK_LIST>

Add picture from clipboard (Maximum size: 742 MB)