Pull to refresh
8
0
Atilla @Atilla

User

Send message
Выдает по желанию в дополнение к ноуту.
25. День начинается утром.
Возможно имеется в виду астрономический день — он начинается в полдень.
https://en.wikipedia.org/wiki/Astronomical_day
Шаттлом рассчитывали выводить за $40-100 килограмм груза, но получилось $13-17k за килограмм.

Кто-нибудь знает с чем связано такое резкое расчетов теории и практики?
Из предложений: возможно имеет смысл написать за что отвечает System ID и Component ID.
Также имеет смысл сразу сделать вместо класса AbstractHandler/HeartbeatHandler абстрактный класс для каждого MAV, который бы отвечал за обработку принятых сообщений и упаковку сообщений для каждого MAV отдельно:

class AbstractMav: public QObject
{
    Q_OBJECT
    
public:
    AbstractMav(QObject* parent = nullptr, AbstractLink* link);

public slots:
    void sendHeartbeat(unit8_t compid);
    void arm();
    void disarm();
    ...

signals:
    void messageReady(const mavlink_message_t& message, const AbstractLink* link);
    void heartheatReceived(unit8_t compid);
    void imuReceived(unit8_t compid, uint64_t timestamp,
                     const QVector3D& accel, const QVector3D& gyro, const QVector3D& mag,
                     double pressure, double temperature);
    ...

private slots:
    void processMessage(const mavlink_message_t& message);

private:
    void commandLong(uint8_t compid,
                     uint16_t command,
                     uint8_t confirmation,
                     float param1, float param2, float param3, float param4,
                     float param5, float param6, float param7 );
    ...

    uint8_t m_sysid;
    AbstractLink* m_link;
};


слот AbstractMav::processMessage соединятеся с сигналом MavLinkCommunicator::messageReceived, и отфильтровыват сообщенния принадлежащие только ему:
void AbstractMav::processMessage(const mavlink_message_t& message) {
    if (message.sysid != m_sysid) {
        return;
    }
    
    switch(message.msgid) {
        case MAVLINK_MSG_ID_HEARTBEAT: {
            emit heartheatReceived(message.compid);
            break;
        }
        case MAVLINK_MSG_ID_HIGHRES_IMU: {
            ...
        }
    }
}


а сигнал AbstractMav::messageReady со слотом MavLinkCommunicator::sendMessage. Каждая функция, которая отправляет данные на MAV, должна активировать сигнал messageReady:
void AbstractMav::sendHeartbeat(unit8_t compid) {
    mavlink_message_t message;
    mavlink_heartbeat_t heartbeat;
    
    mavlink_msg_heartbeat_encode(m_sysd, compid, &message, &heartbeat);

    emit messageReady(message, m_link)
}


Правильная реализация MAVLink должна поддерживать общение с несколькими MAV через один канал, или даже через несколько каналов. Такую возможность лучше заложить сразу, а не переписывать потом.

И из мелочей: имеет смысл использовать QHash вместо QMap для члена MavLinkCommunicator:: m_linkChannels, так как упорядоченности по ключу нам не важна.
Видно опсос решил что это слишком просто:)
Да, это про них:) Я в принципе ничего против микрософта и виндоус не имею, просто в данном случае со стороны пчелайна есть поддержка виндоус, как единственно правильной для её продукта. Поэтому и православная.
Пожалуйста, сам мучался, и решил опубликовать где-нибудь, чтобы другим было легче:)
Это политика пчелайна. Они добавляет в прошивку файл NODOWNLOAD.FLG чтобы можно было использовать их модем только с ИХ программами и только через ИХ симки. Они не идут по пути совершенствования программ (больше платформ, отказ из привязки к программе...) а по пути приманивания и привязывания к ним клиентов любыми силами.
Это если есть готовое решение…
А так это больше вина пчелайна а не каноникал.
Как правильно сказал forefinger, я лишь предлагаю человеку возможность смотреть карму пользователя, не заглядывая на его страницу. Каждый человек в праве устанавливать его, или не устанавливать. Я не претендую на то, чтобы его вставили на хабр по умолчанию.
У меня такое было, когда запускал скрипт со своего компа, даже при наличии интернета. Надо было запускать скрипт с хабра. Но сейчас почему такое происходит, ума не приложу.

Пробовал и поставить условие status == 0, но ответ с сервера — пустая сторока… Похоже придется спросить у чипа и дейла, может я что не понял в отправке запросов.

Если кто разбирался с этим, приведу кусок кода, отвечающий за получение кармы:

	function writeKarma (event) {
		object=event.currentTarget;
		var username=object.firstChild.nodeValue;
		var xmlhttp = getXmlHttp();
		xmlhttp.open('GET', 'http://habrahabr.ru/api/profile/'+username+'/', true);
		xmlhttp.onreadystatechange = function() {
			// в этот момент status равен почему-то 0...
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				p=document.createElement('p')
				p.innerHTML=xmlhttp.responseText.substring(xmlhttp.responseText.indexOf('<karma>')+7, xmlhttp.responseText.indexOf('</karma>'));
				...
				}
			}

	}

А для чего же я делал этот скрипт? ;)
>> Цель: Снизить объективность оценки комментария.
Тоже идея хорошая. Похоже придется учесть все замечания и выпустить КармаПисчик 2.0.

Только вот что брать потолком для чисто зеленого света? У на хабре куча народу, у кого карма больше +100 (и меньше -100 :), так что для всех них, карма будет одинаковой. Это не Ъ. Если взять наивысшей точкой карму Boomburum'a (~900), то разницы между -10 и +10 особо не будет, хотя разница-то есть.
Это исправим. Но есть проблема покрупнее.
На асинхронный зарос сервер отвечает readyState == 4 но почему-то status == 0? Хотя до этого отправлял 200 в status'e. Может кто сталкивался с такой проблемой?
Да, так лучше будет. Работаю.
Да нет, это просто подстава какая-то. Скрипту надо было перестать работать, когда я его опубликовал. Ищу ошибку.
У меня тоже перестал работать. Хотя вчера тот же самый код работал великолепно.
Может что-то не то с api хабра?
Какой код латинского символа «с»?
Была идея высвечивать карму при наведении на весь коммент, но думаю это будет отвлекать и мешать.
Парсер дурак, почему-то вместо «userscripts.org/scripts/show/72025» поставил «users%26/#99;ripts.org/scripts/show/72025»

Какая версия хрома? 5.0.322.2 dev все работает.
>> Japonia
???
Это на каком?

Information

Rating
Does not participate
Location
Россия
Registered
Activity