u16 getCmdUSB(u8 * buf) { u16 len = 0; cmd_info wrap; u8 * pBuf = buf; u8 nrLongPack = 0; u16 limit = 2000; pBuf++; //missing pilot wrap.cmd = *pBuf; pBuf += SIZE_WRAP_CMD; pBuf += SIZE_WRAP_AUX; //missing aux wrap.len = *(u16*)pBuf; //length pBuf += SIZE_WRAP_LEN; buf += SIZE_HEADER_PACKET; /*Executing commands and handling data*/ switch(wrap.cmd) { case CMD_ALL_INFO : len = genInfo(buf, 0); break; case CMD_READ_CONFIG : len = menuDisplay(buf, &nrLongPack, limit);break; case CMD_WRITE_CONFIG : len = writeConfig(wrap.len, buf ); break; case CMD_PSW_CHECK : len = checkPsw( buf ); break; case CMD_BL_ENTER : len = blEnter(); break; case CMD_BL_PORTION : len = addPortion(wrap.len, buf); break; case CMD_BL_ADD_PAGE : len = addPage(wrap.len, buf); break; case CMD_BL_CHECK_CRC : len = blCheckCRC(buf); break; case CMD_BL_RESTART : len = systemRestartDelayed(); break; case CMD_GET_VERSION : len = getVersion(buf); break; case CMD_ACCEL : len = accelHandle(buf); break; case CMD_TU : len = controlTU(buf); break; case CMD_DEBUG : len = debScan(buf); break; case CMD_QUITTANCE : len = quittance(); break; case CMD_GET_BALANCE : len = getBalance(buf); break; case CMD_GET_GPS_PACKET : len = getGpsPacket(buf); break; case CMD_SET_CALIBR_KOEF : len = setCalibrKoef(buf); break; case CMD_GET_PHONE_NUMBER: len = getPhoneNumber(buf); break; case CMD_GET_RTC_TIME : len = getRTCTime(buf); break; case CMD_MK_ZERO_MILEAGE : len = zeroMileage(buf); break; default : break; } len = prepareForSendUSB(buf,len,nrLongPack); /* todo: should make some error codes and results*/ return len; }
u16 getCmd(u8 * buf) { u16 len = 0; cmd_info wrap; u8 nrLongPack = 0; u16 limit = 2000; //exact buf += SIZE_WRAP_BLOCKID; wrap.cmd = *buf; //cmd buf += SIZE_WRAP_CMD; buf += SIZE_WRAP_AUX; //aux wrap.len = *(u16*)buf; //length buf += SIZE_WRAP_LEN; /*Executing commands and handling data*/ switch(wrap.cmd) { case CMD_ALL_INFO : len = genInfo(buf, 1); break; case CMD_READ_CONFIG : len = menuDisplay(buf, &nrLongPack, limit); break; case CMD_WRITE_CONFIG : len = writeConfig(wrap.len, buf ); break; case CMD_PSW_CHECK : len = checkPsw( buf ); break; case CMD_BL_ENTER : len = blEnter(); break; case CMD_BL_PORTION : len = addPortion(wrap.len, buf); break; case CMD_BL_ADD_PAGE : len = addPage(wrap.len, buf); break; case CMD_BL_CHECK_CRC : len = blCheckCRC(buf); break; case CMD_BL_RESTART : len = systemRestartDelayed(); break; case CMD_GET_VERSION : len = getVersion(buf); break; case CMD_TU : len = controlTU(buf); break; case CMD_QUITTANCE : len = quittance(); break; case CMD_GET_BALANCE : len = getBalance(buf); break; case CMD_GET_GPS_PACKET : len = getGpsPacket(buf); break; case CMD_GET_PHONE_NUMBER: len = getPhoneNumber(buf); break; case CMD_GET_RTC_TIME : len = getRTCTime(buf); break; case CMD_MK_ZERO_MILEAGE : len = zeroMileage(buf); break; default : break; } //if(len) len = prepareForSend(bufRxOperGSM,len, 0x01, wrap.cmd, nrLongPack); /* filling cmd,uid,len crc ...*/ /* todo: should make some error codes and results*/ return len; }
QString Fixture::status() const { QString info; QString t; QString title("<TR><TD CLASS='hilite' COLSPAN='3'>%1</TD></TR>"); QString subTitle("<TR><TD CLASS='subhi' COLSPAN='3'>%1</TD></TR>"); QString genInfo("<TR><TD CLASS='emphasis'>%1</TD><TD COLSPAN='2'>%2</TD></TR>"); /******************************************************************** * General info ********************************************************************/ info += "<TABLE COLS='3' WIDTH='100%'>"; // Fixture title info += title.arg(name()); // Manufacturer if (isDimmer() == false) { info += genInfo.arg(tr("Manufacturer")).arg(m_fixtureDef->manufacturer()); info += genInfo.arg(tr("Model")).arg(m_fixtureDef->model()); info += genInfo.arg(tr("Mode")).arg(m_fixtureMode->name()); info += genInfo.arg(tr("Type")).arg(m_fixtureDef->type()); } else { info += genInfo.arg(tr("Type")).arg(tr("Generic Dimmer")); } // Universe info += genInfo.arg(tr("Universe")).arg(universe() + 1); // Address QString range = QString("%1 - %2").arg(address() + 1).arg(address() + channels()); info += genInfo.arg(tr("Address Range")).arg(range); // Channels info += genInfo.arg(tr("Channels")).arg(channels()); // Binary address QString binaryStr = QString("%1").arg(address() + 1, 10, 2, QChar('0')); QString dipTable("<TABLE COLS='33' cellspacing='0'><TR><TD COLSPAN='33'><IMG SRC=\"" ":/ds_top.png\"></TD></TR>"); dipTable += "<TR><TD><IMG SRC=\"" ":/ds_border.png\"></TD><TD><IMG SRC=\"" ":/ds_border.png\"></TD>"; for (int i = 9; i >= 0; i--) { if (binaryStr.at(i) == '0') dipTable += "<TD COLSPAN='3'><IMG SRC=\"" ":/ds_off.png\"></TD>"; else dipTable += "<TD COLSPAN='3'><IMG SRC=\"" ":/ds_on.png\"></TD>"; } dipTable += "<TD><IMG SRC=\"" ":/ds_border.png\"></TD></TR>"; dipTable += "<TR><TD COLSPAN='33'><IMG SRC=\"" ":/ds_bottom.png\"></TD></TR>"; dipTable += "</TABLE>"; info += genInfo.arg(tr("Binary Address (DIP)")) .arg(QString("%1").arg(dipTable)); /******************************************************************** * Channels ********************************************************************/ // Title row info += QString("<TR><TD CLASS='subhi'>%1</TD>").arg(tr("Channel")); info += QString("<TD CLASS='subhi'>%1</TD>").arg(tr("DMX")); info += QString("<TD CLASS='subhi'>%1</TD></TR>").arg(tr("Name")); // Fill table with the fixture's channels for (quint32 ch = 0; ch < channels(); ch++) { QString chInfo("<TR><TD>%1</TD><TD>%2</TD><TD>%3</TD></TR>"); info += chInfo.arg(ch + 1).arg(address() + ch + 1) .arg(channel(ch)->name()); } /******************************************************************** * Extended device information for non-dimmers ********************************************************************/ if (isDimmer() == false) { QLCPhysical physical = m_fixtureMode->physical(); info += title.arg(tr("Physical")); float mmInch = 0.0393700787; float kgLbs = 2.20462262; QString mm("%1mm (%2\")"); QString kg("%1kg (%2 lbs)"); QString W("%1W"); info += genInfo.arg(tr("Width")).arg(mm.arg(physical.width())) .arg(physical.width() * mmInch, 0, 'g', 4); info += genInfo.arg(tr("Height")).arg(mm.arg(physical.height())) .arg(physical.height() * mmInch, 0, 'g', 4); info += genInfo.arg(tr("Depth")).arg(mm.arg(physical.depth())) .arg(physical.depth() * mmInch, 0, 'g', 4); info += genInfo.arg(tr("Weight")).arg(kg.arg(physical.weight())) .arg(physical.weight() * kgLbs, 0, 'g', 4); info += genInfo.arg(tr("Power consumption")).arg(W.arg(physical.powerConsumption())); info += genInfo.arg(tr("DMX Connector")).arg(physical.dmxConnector()); // Bulb QString K("%1K"); QString lm("%1lm"); info += subTitle.arg(tr("Bulb")); info += genInfo.arg(tr("Type")).arg(physical.bulbType()); info += genInfo.arg(tr("Luminous Flux")).arg(lm.arg(physical.bulbLumens())); info += genInfo.arg(tr("Colour Temperature")).arg(K.arg(physical.bulbColourTemperature())); // Lens QString angle1("%1°"); QString angle2("%1° – %2°"); info += subTitle.arg(tr("Lens")); info += genInfo.arg(tr("Name")).arg(physical.lensName()); if (physical.lensDegreesMin() == physical.lensDegreesMax()) { info += genInfo.arg(tr("Beam Angle")) .arg(angle1.arg(physical.lensDegreesMin())); } else { info += genInfo.arg(tr("Beam Angle")) .arg(angle2.arg(physical.lensDegreesMin()) .arg(physical.lensDegreesMax())); } // Focus QString range("%1°"); info += subTitle.arg(tr("Focus")); info += genInfo.arg(tr("Type")).arg(physical.focusType()); info += genInfo.arg(tr("Pan Range")).arg(range.arg(physical.focusPanMax())); info += genInfo.arg(tr("Tilt Range")).arg(range.arg(physical.focusTiltMax())); } // HTML document & table closure info += "</TABLE>"; if (isDimmer() == false) { info += "<HR>"; info += "<DIV CLASS='author' ALIGN='right'>"; info += tr("Fixture definition author: ") + fixtureDef()->author(); info += "</DIV>"; } return info; }