コード例 #1
0
/* Removes the device, shutting it down */
int
device_remove(struct device *dev)
{
    int res = 0;
    int i, j;
    if (dev->state == RUNNING) {
        res = device_pause(dev);
        if (res)
            return res;
    }

    res = dev->deinit(dev);
    if (res)
        return res;

    for (i=0; i<dev_ptr; i++) {
        if (devices[i] == dev) {
            for (j=i+1; j<dev_ptr; j++)
                devices[j-1] = devices[j];
            dev_ptr--;
        }
    }

    return 0;
}
コード例 #2
0
int
device_pause_all(void)
{
    int i;
    int res = 0;
    for (i=dev_ptr-1; i>=0; i--) {
        Serial1.print("Suspending "); Serial1.println(devices[i]->name);
        res |= device_pause(devices[i]);
    }
    return res;
}
コード例 #3
0
ファイル: kTankCfg.c プロジェクト: kemaliu/kFishTank
static INT8 cmdSetProcess(struct rf_cmd * pCmd)
{
    switch(pCmd->cmd){
      case KFISH_CMD_SET_CTRL_CFG:
	if(pCmd->ctrlId >= __local_ctrl_num){
	    return CMD_PROCESS_ERROR;
	}
	memcpy(__local_ctrl[pCmd->ctrlId].ctrl.led.pwm, pCmd->data, 24);
	local_device_info_save();
	return CMD_PROCESS_ACK;
      case KFISH_CMD_SET_CTRL_NAME:
	if(pCmd->ctrlId >= __local_ctrl_num){
	    return CMD_PROCESS_ERROR;
	}
	memcpy(__local_ctrl[pCmd->ctrlId].name, pCmd->data, 24);
	__local_ctrl[pCmd->ctrlId].name[23] = 0;
	local_device_info_save();
	DBG_PRINT("\nset  ctrl%d name %s\n", pCmd->ctrlId, __local_ctrl[pCmd->ctrlId].name);
	return CMD_PROCESS_ACK;
      case KFISH_CMD_SET_DEVICE_NAME:
	memcpy(__device_name, pCmd->data, 24);
	__device_name[23] = 0;
	DBG_PRINT("new dev name %s\n", __device_name);
	local_device_info_save();
	return CMD_PROCESS_ACK;
      case KFISH_CMD_TIME_NOTIFY:
	/* 时间同步是一个特殊的消息,主同一个同步命令只需要理会一次 */
        /* slave time process */{
          static UINT8 __last_time_seq = 0;
          if(__last_time_seq != pCmd->seqNum){
              DBG_PRINT("time sync %d-%d-%d %d:%d:%d\n",
                     pCmd->data[0], pCmd->data[1], pCmd->data[2],
                     pCmd->data[4], pCmd->data[5], pCmd->data[6]);
              __last_time_seq = pCmd->seqNum;
          }
	  return CMD_PROCESS_NO_ACK;
      }
      case KFISH_CMD_PAUSE_DEVICE:
	device_pause(pCmd);
	return CMD_PROCESS_ACK;
      default:
	return CMD_PROCESS_ERROR;
    }
}