/* --------------------------------------------------------------------------*/ int player_send_message(int pid, player_cmd_t *cmd) { player_cmd_t *mycmd; int r = -1; play_para_t *player_para; char buf[512]; player_para = player_open_pid_data(pid); if (player_para == NULL) { return PLAYER_NOT_VALID_PID; } if (player_get_state(pid) == PLAYER_EXIT) { player_close_pid_data(pid); return PLAYER_SUCCESS; } mycmd = message_alloc(); if (mycmd) { memcpy(mycmd, cmd, sizeof(*cmd)); r = send_message_by_pid(pid, mycmd); if (cmd2str(cmd, buf) != -1) { log_print("[%s]cmd = %s\n", __FUNCTION__, buf); } } else { r = PLAYER_NOMEM; } player_close_pid_data(pid); return r; }
boolean Plugin_098(byte function, struct NodoEventStruct *event, char *string) { boolean success=false; switch(function) { #ifdef PLUGIN_098_CORE #if NODO_MEGA case PLUGIN_COMMAND: { // Par 1 ='command/type' byte Par2=event->Par2 & 0xff; // Par 2 = Variabel nr or 0=Off, 1=On byte Par3=event->Par2>>8 & 0xff; // Par 3 = sensortype byte Par4=event->Par2>>16 & 0xffff; // Par 4 = IDX byte x; char *HttpRequest=(char*)malloc(INPUT_LINE_SIZE+1); if (event->Par1 == CMD_VARIABLE_SEND) { if (Par3 == 1) // Single value Sensor { strcpy(HttpRequest,"/json.htm?type=command¶m=udevice&idx="); strcat(HttpRequest,int2str(Par4)); strcat(HttpRequest,"&nvalue=0&svalue="); //strcat(HttpRequest,int2str(UserVar[Par2-1])); dtostrf(UserVar[Par2-1], 0, 2,HttpRequest+strlen(HttpRequest)); } if (Par3 == 10) // switch { strcpy(HttpRequest,"/json.htm?type=command¶m=switchlight&idx="); strcat(HttpRequest,int2str(Par4)); strcat(HttpRequest,"&switchcmd="); if (Par3==1) strcat(HttpRequest,"On"); else strcat(HttpRequest,"Off"); strcat(HttpRequest,"&level=0"); } } if (event->Par1 == CMD_VARIABLE_GET) { if (Par3 == 1) // Get Sensor Data { strcpy(HttpRequest,"/json.htm?type=devices&rid="); strcat(HttpRequest,int2str(Par4)); } } x=P098SendCustomHTTPRequest(HttpRequest,PLUGIN_098_IP,PLUGIN_098_PORT,Par2); free(HttpRequest); success=true; break; } #endif #endif // PLUGIN_098_CORE #if NODO_MEGA case PLUGIN_MMI_IN: { char *TempStr=(char*)malloc(INPUT_COMMAND_SIZE); if(GetArgv(string,TempStr,1)) { if(strcasecmp(TempStr,PLUGIN_NAME)==0) { if(GetArgv(string,TempStr,3)) event->Par2=str2int(TempStr); if(GetArgv(string,TempStr,4)) event->Par2|=str2int(TempStr)<<8; if(GetArgv(string,TempStr,5)) event->Par2|=str2int(TempStr)<<16; event->Type = NODO_TYPE_PLUGIN_COMMAND; event->Command = PLUGIN_ID; // Plugin nummer success=true; } } free(TempStr); break; } case PLUGIN_MMI_OUT: { strcpy(string,PLUGIN_NAME); // Eerste argument=het commando deel strcat(string," "); strcat(string,cmd2str(event->Par1)); strcat(string,","); strcat(string,int2str(event->Par2 & 0xff)); strcat(string,","); strcat(string,int2str(event->Par2>>8 & 0xff)); strcat(string,","); strcat(string,int2str(event->Par2>>16 & 0xffff)); break; } #endif //NODO_MEGA } return success; }