Esempio n. 1
0
export function dumpData(data: number[] | Buffer) {
    let result = "";
    _map(data, value => "0x" + formatNumber(value, 16, 2)).forEach((value, index) => {
        if (result.length > 0) {
            result += ",";
        }
        if (index % 16 == 0) {
            result += "\n" + TAB;
        } else {
            result += " ";
        }
        result += value;
    });
    result += "\n";
    return result;
}
Esempio n. 2
0
    return _map(sdl.find("GlobalDefinitions>Enum"), (element: HTMLElement, index: number) => {
        const name = $(element).attr("name") || "";

        const members: IEnumMember[] = _map(
            $(element).find("Member"),
            (element: HTMLElement, index: number) => {
                const name = $(element).attr("mnemonic") || "";
                const value = $(element).attr("value") || "";
                return {
                    name,
                    value
                };
            }
        );

        return {
            name,
            members
        };
    });
Esempio n. 3
0
function buildParameters(dom: JQuery): IParameter[] {
    return _map(dom.find("Parameters>Parameter"), (element: HTMLElement, index: number) => {
        const name = element.getAttribute("name") || index.toString();

        let isOptional;
        try {
            isOptional = !!JSON.parse(element.getAttribute("optional") || "false");
        } catch (err) {
            console.error(err);
            isOptional = false;
        }

        let type: IParameterType[] = [];

        if ($(element).find("Any").length) {
            type.push({
                type: "any"
            });
        } else {
            if ($(element).find("NonDecimalNumeric").length) {
                type.push({
                    type: "nr1"
                });
            } else if ($(element).find("DecimalNumeric").length) {
                type.push({
                    type: "nr2"
                });
            }

            if ($(element).find("String").length) {
                type.push({
                    type: "quoted-string"
                });
            }

            if ($(element).find("DataBlock").length) {
                type.push({
                    type: "data-block"
                });
            }

            if ($(element).find("Character>EnumRef").length) {
                type.push({
                    type: "discrete",
                    enumeration: $(element)
                        .find("Character>EnumRef")
                        .attr("name")
                });
            }

            if ($(element).find("Expression>ChannelList").length) {
                type.push({
                    type: "channel-list"
                });
            }

            if ($(element).find("ArbitraryBlock").length) {
                type.push({
                    type: "data-block"
                });
            }
        }

        const description = element.getAttribute("description") || "";

        return {
            name,
            type,
            isOptional,
            description
        };
    });
}