/**
 * ハードウェアイベント(遅延実行)
 * @param u32DeviceId
 * @param u32ItemBitmap
 */
static void cbAppToCoNet_vHwEvent(uint32 u32DeviceId, uint32 u32ItemBitmap) {
	switch (u32DeviceId) {
	case E_AHI_DEVICE_TICK_TIMER:
		break;

	case E_AHI_DEVICE_ANALOGUE:
		/*
		 * ADC完了割り込み
		 */
		V_PUTCHAR('@');
		vSnsObj_Process(&sAppData.sADC, E_ORDER_KICK);
		if (bSnsObj_isComplete(&sAppData.sADC)) {
			// 全チャネルの処理が終わったら、次の処理を呼び起こす
			vStoreSensorValue();
			ToCoNet_Event_Process(E_ORDER_KICK, 0, vProcessEvCore);
		}
		break;

	case E_AHI_DEVICE_SYSCTRL:
		break;

	case E_AHI_DEVICE_TIMER0:
		break;

	default:
		break;
	}
}
static void vProcessTSL2561(teEvent eEvent) {
	if (bSnsObj_isComplete(&sSnsObj)) {
		 return;
	}

	// イベントの処理
	vSnsObj_Process(&sSnsObj, eEvent); // ポーリングの時間待ち
	if (bSnsObj_isComplete(&sSnsObj)) {
		u8sns_cmplt |= E_SNS_TSL2561_CMP;

		V_PRINTF(LB"!TSL2561: %dC", sObjTSL2561.u32Result );

		// 完了時の処理
		if (u8sns_cmplt == E_SNS_ALL_CMP) {
			ToCoNet_Event_Process(E_ORDER_KICK, 0, vProcessEvCore);
		}
	}

}
static void vProcessBME280(teEvent eEvent) {
	if (bSnsObj_isComplete(&sSnsObj)) {
		 return;
	}

	// イベントの処理
	vSnsObj_Process(&sSnsObj, eEvent); // ポーリングの時間待ち
	if (bSnsObj_isComplete(&sSnsObj)) {
		u8sns_cmplt |= E_SNS_BME280_CMP;

		V_PRINTF(LB"!BME280: Temp : %d, Hum : %d, Pres : %d",
			sObjBME280.i16Temp,
			sObjBME280.u16Hum,
			sObjBME280.u16Pres
		);

		// 完了時の処理
		if (u8sns_cmplt == E_SNS_ALL_CMP) {
			ToCoNet_Event_Process(E_ORDER_KICK, 0, vProcessEvCore);
		}
	}
}
示例#4
0
static void vProcessLIS3DH(teEvent eEvent) {
	if (bSnsObj_isComplete(&sSnsObj)) {
		 return;
	}

	// イベントの処理
	vSnsObj_Process(&sSnsObj, eEvent); // ポーリングの時間待ち
	if (bSnsObj_isComplete(&sSnsObj)) {
		u8sns_cmplt |= E_SNS_LIS3DH_CMP;

		V_PRINTF(LB"!LIS3DH: X : %d, Y : %d, Z : %d",
			sObjLIS3DH.ai16Result[LIS3DH_IDX_X],
			sObjLIS3DH.ai16Result[LIS3DH_IDX_Y],
			sObjLIS3DH.ai16Result[LIS3DH_IDX_Z]
		);

		// 完了時の処理
		if (u8sns_cmplt == E_SNS_ALL_CMP) {
			ToCoNet_Event_Process(E_ORDER_KICK, 0, vProcessEvCore);
		}
	}

}
示例#5
0
/**
 * TXイベント
 * @param u8CbId
 * @param bStatus
 */
static void cbAppToCoNet_vTxEvent(uint8 u8CbId, uint8 bStatus) {
	// 送信完了
	V_PRINTF(LB"! Tx Cmp = %d", bStatus);
	ToCoNet_Event_Process(E_ORDER_KICK, 0, vProcessEvCore);
}
/**
 * UART コマンド
 */
static void cb_vProcessSerialCmd(tsSerCmd_Context *pCmd) {
	ToCoNet_Event_Process(E_ORDER_KICK, (uint32)(void *)pCmd, vProcessEvCore);
}
/**
 * TXイベント
 * @param u8CbId
 * @param bStatus
 */
static void cbAppToCoNet_vTxEvent(uint8 u8CbId, uint8 bStatus) {
	// 送信完了
	ToCoNet_Event_Process(E_ORDER_KICK, 0, vProcessEvCore);
}
/****************************************************************************
 *
 * NAME: cbToCoNet_vNwkEvent
 *
 * DESCRIPTION:
 *
 * PARAMETERS:      Name            RW  Usage
 *
 * RETURNS:
 *
 * NOTES:
 ****************************************************************************/
void cbToCoNet_vNwkEvent(teEvent eEvent, uint32 u32arg) {
	switch(eEvent) {
	/*
	 * ネットワークが開始された
	 */
	case E_EVENT_TOCONET_NWK_START:
		V_PRINTF(LB"[E_EVENT_TOCONET_NWK_START:%d,Ch:%d]", u32TickCount_ms & 0xFFFF, sToCoNet_AppContext.u8Channel);
		vDispInfo(&sSerStream, (void*)sAppData.pContextNwk);

		// pass this event to the event machine
		ToCoNet_Event_Process(E_EVENT_TOCONET_NWK_START, u32arg, vProcessEvCore);
		break;

	/*
	 * ネットワークが切断された
	 */
	case E_EVENT_TOCONET_NWK_DISCONNECT:
		V_PRINTF(LB"[E_EVENT_TOCONET_NWK_DISCONNECT]");

		// pass this event to the event machine
		ToCoNet_Event_Process(E_EVENT_TOCONET_NWK_DISCONNECT, u32arg, vProcessEvCore);
		break;

	/*
	 * メッセージプールを受信
	 */
	case E_EVENT_TOCONET_NWK_MESSAGE_POOL:
		if (u32arg) {
			tsToCoNet_MsgPl_Entity *pInfo = (void*)u32arg;
			int i;
			//static uint8 u8seq = 0;

			uint8 u8buff[TOCONET_MOD_MESSAGE_POOL_MAX_MESSAGE+1];
			memcpy(u8buff, pInfo->au8Message, pInfo->u8MessageLen); // u8Message にデータ u8MessageLen にデータ長
			u8buff[pInfo->u8MessageLen] = 0;

			// UART にメッセージ出力
			if (pInfo->bGotData) { // empty なら FALSE になる
				V_PRINTF(LB"---MSGPOOL sl=%d ln=%d msg=",
						pInfo->u8Slot,
						pInfo->u8MessageLen
						);

				SPRINTF_vRewind();
				for (i = 0; i < pInfo->u8MessageLen; i++) {
					vfPrintf(SPRINTF_Stream, "%02X", u8buff[i]);
				}
				V_PRINTF("%s", SPRINTF_pu8GetBuff());

#ifdef USE_LCD
				V_PRINTF_LCD("%02x:%s\r\n", u8seq++, SPRINTF_pu8GetBuff());
				vLcdRefresh();
#endif

				V_PRINTF("---");
			} else {
				V_PRINTF(LB"---MSGPOOL sl=%d EMPTY ---",
						pInfo->u8Slot
						);
#ifdef USE_LCD
				V_PRINTF_LCD("%02x: EMPTY\r\n", u8seq++);
				vLcdRefresh();
#endif
			}

			ToCoNet_Event_Process(E_EVENT_APP_GET_IC_INFO, pInfo->bGotData, vProcessEvCore); // vProcessEvCore にイベント送信
		}
		break;

	default:
		break;
	}
}