Exemple #1
0
int
Mavlink::mavlink_dev_ioctl(struct file *filep, int cmd, unsigned long arg)
{
	switch (cmd) {
	case (int)MAVLINK_IOC_SEND_TEXT_INFO:
	case (int)MAVLINK_IOC_SEND_TEXT_CRITICAL:
	case (int)MAVLINK_IOC_SEND_TEXT_EMERGENCY: {

			const char *txt = (const char *)arg;
//		printf("logmsg: %s\n", txt);
			struct mavlink_logmessage msg;
			strncpy(msg.text, txt, sizeof(msg.text));
			msg.severity = (unsigned char)cmd;

			Mavlink *inst;
			LL_FOREACH(_mavlink_instances, inst) {
				if (!inst->_task_should_exit) {
					mavlink_logbuffer_write(&inst->_logbuffer, &msg);
					inst->_total_counter++;
				}
			}

			return OK;
		}

	default:
		return ENOTTY;
	}
}
void
Mavlink::send_statustext(unsigned char severity, const char *string)
{
	struct mavlink_logmessage logmsg;
	strncpy(logmsg.text, string, sizeof(logmsg.text));
	logmsg.severity = severity;

	mavlink_logbuffer_write(&_logbuffer, &logmsg);
}
int
Mavlink::ioctl(device::file_t *filp, int cmd, unsigned long arg)
{
	switch (cmd) {
	case (int)MAVLINK_IOC_SEND_TEXT_INFO:
	case (int)MAVLINK_IOC_SEND_TEXT_CRITICAL:
	case (int)MAVLINK_IOC_SEND_TEXT_EMERGENCY: {

			const char *txt = (const char *)arg;
			struct mavlink_logmessage msg;
			strncpy(msg.text, txt, sizeof(msg.text));

			switch (cmd) {
			case MAVLINK_IOC_SEND_TEXT_INFO:
				msg.severity = MAV_SEVERITY_INFO;
				break;

			case MAVLINK_IOC_SEND_TEXT_CRITICAL:
				msg.severity = MAV_SEVERITY_CRITICAL;
				break;

			case MAVLINK_IOC_SEND_TEXT_EMERGENCY:
				msg.severity = MAV_SEVERITY_EMERGENCY;
				break;

			default:
				msg.severity = MAV_SEVERITY_INFO;
				break;
			}

			Mavlink *inst;
			LL_FOREACH(_mavlink_instances, inst) {
				if (!inst->_task_should_exit) {
					mavlink_logbuffer_write(&inst->_logbuffer, &msg);
					inst->_total_counter++;
				}
			}

			return OK;
		}

	default:
		return ENOTTY;
	}
}
static int
mavlink_dev_ioctl(struct file *filep, int cmd, unsigned long arg)
{
	static unsigned int total_counter = 0;

	switch (cmd) {
	case (int)MAVLINK_IOC_SEND_TEXT_INFO:
	case (int)MAVLINK_IOC_SEND_TEXT_CRITICAL:
	case (int)MAVLINK_IOC_SEND_TEXT_EMERGENCY: {
			const char *txt = (const char *)arg;
			struct mavlink_logmessage msg;
			strncpy(msg.text, txt, sizeof(msg.text));
			mavlink_logbuffer_write(&lb, &msg);
			total_counter++;
			return OK;
		}

	default:
		return ENOTTY;
	}
}