예제 #1
0
static QStringList getRegPorts()
{
    QStringList regPorts;

    QStringList result1 = regParse("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB", QRegExp("^VID_1FC9&PID_0083(.*)"));
    //QStringList result1 = regParse("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB", QRegExp("^VID_04E8&PID_6866(.*)"));
    //QStringList result1 = regParse("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB", QRegExp("^VID_(\\w{4})&PID_(\\w{4,})(.*)"));
    for (int i = 0; i < result1.size(); i ++) {
        QStringList result2 = regParse(QString("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB\\" + result1.at(i)), QRegExp("(.*)"));
        for (int j = 0; j < result2.size(); j ++) {
            QStringList result3 = regParse(QString("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB\\" + result1.at(i) + "\\" + result2.at(j)), QRegExp("\\Device Parameters"));
            for (int k = 0; k < result3.size(); k ++) {
                QSettings settings(QString("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\USB\\" + result1.at(i) + "\\" + result2.at(j) + "\\Device Parameters"), QSettings::NativeFormat);
                if (!settings.value("PortName").toString().isEmpty()) {
                    regPorts.append(settings.value("PortName").toString());
                    //qDebug() << "======" + result1.at(i) + "    " + regPorts.last();
                }
            }
        }
    }

    return regPorts;
}
예제 #2
0
regRegion* regReadAsciiRegion( char* filename, int verbose )
{
    regRegion *region = NULL;
    FILE *fp = NULL;

    char buf[SZ_LARGE];
    long maxlen = SZ_LARGE;
    char *ptr;
    long sys = RC_UNK;
    char *string = NULL;
    long mode = RF_UNK;
    char *smodes[] = { "UNK", "PHYSICAL", "LOGICAL", "WORLD" };
    char *modes[] = { "UNK", "SAOIMAGE", "SAOTNG", "PROS", "CXC", "DS9",
		      "DS9_V4" };
    fp = fopen(filename, "r");

    if (!fp) {
	    return NULL;
    }
    if (verbose >= 1) {
	    fprintf(stderr, "cxcregion: parsing region file %s\n", filename);
    }

    string = calloc(SZ_LARGE, sizeof(char *));
    while (reg_read_line(fp, buf, SZ_LARGE)) {
	    ptr = buf;
	
	    if ((ptr[0] == '#') && (mode != RF_UNK)) {
	        continue;
        }

	    while (*ptr == ' ') {
	        ptr++;
        }
	    if (*ptr) {
	        reg_parse_line(ptr, &mode, &string, &maxlen, &sys);
	    }
    }

    region = regParse(string);
    
    if (verbose >= 4) {
	    fprintf(stderr, "Ascii Region Parse String = %s\n", string);
	    fprintf(stderr, "SYS = %s FORMAT = %s\n", smodes[sys],
		        modes[mode]);
	    regPrintRegion(region);
    }
    free(string);
    return region;
}