#usage "Kopiere die Attribute der Devices in alle Package-Varianten, und benenne die 1. Variante um zu ''
"
"In den (Connect) Scripten von LT werden Package-Varianten angelegt, aber nur die erste "
"erhält die Attribute aus der importierten *.asy.
"
"In den Beispielschaltplänen, wird keine Package-Variante angegeben, deshalb muß ein Device im Deviceset "
"ein neutrales sein!
"
"Package-Variante == ''
"
"Author alf@cadsoft.de"
string Version = "1.0.0"; // 2012-10-05 alf@cadsoft.de
string Dev_AttributtesName[];
string Dev_AttributtesValue[];
int cntAttr = 0;
string Cmd = "";
string s;
string checkname(string s) {
if (s == "''") return "";
return s;
}
void loopdeviceset(UL_DEVICESET DEV) {
int n;
DEV.devices(D) {
int numofattr = 0;
string t[];
n = strsplit(t, D.technologies, ' ');
for (int i = 0; i < n; i++) {
D.attributes(A, t[i]) {
numofattr++;
}
}
if (numofattr > cntAttr) {
cntAttr = 0;
n = strsplit(t, D.technologies, ' ');
for (int i = 0; i < n; i++) {
D.attributes(A, t[i]) {
Dev_AttributtesName[cntAttr] = A.name;
Dev_AttributtesValue[cntAttr] = A.value;
cntAttr++;
}
}
}
}
int dcnt = 0;
DEV.devices(D) {
sprintf(s, "PACKAGE '%s';\n", checkname(D.name));
Cmd += s;
sprintf(s, "TECHNOLOGY '';\n");
Cmd += s;
for (n = 0; n < cntAttr; n++) {
sprintf(s, "ATTRIBUTE %s '%s';\n", Dev_AttributtesName[n], Dev_AttributtesValue[n]);
Cmd+= s;
}
if (!dcnt) {
string pacnam = checkname(D.name);
if (pacnam) {
sprintf(s, "PACKAGE -%s '''''';\n", pacnam);
Cmd+=s;
}
dcnt++;
}
}
return;
}
if (deviceset && !argv[1]) {
Cmd = "";
deviceset(DEV) {
loopdeviceset(DEV);
}
//dlgMessageBox(Cmd, "ok");
exit(Cmd);
}
else if (library || deviceset && argv[1] == "/ALL") {
Cmd = "";
library(L) L.devicesets(DEV) {
sprintf(s, "EDIT %s.DEV;\n", DEV.name);
Cmd+=s;
loopdeviceset(DEV);
//if (dlgMessageBox(Cmd, "ok", "esc") != 0) exit(Cmd);
}
exit(Cmd);
}