Exemplo n.º 1
0
boolean PluginTX_005(byte function, char *string) {
        //10;EURODOMEST;03696b;0;ON;
        //012345678901234567890123456
        boolean success=false;
        if (strncasecmp(InputBuffer_Serial+3,"EURODOMEST;",11) == 0) { // KAKU Command eg. 
           unsigned long bitstream=0L;
           if (InputBuffer_Serial[20] != ';') return success;
           if (InputBuffer_Serial[22] != ';') return success;
          
           InputBuffer_Serial[12]=0x30;
           InputBuffer_Serial[13]=0x78;
           InputBuffer_Serial[20]=0x00;
           bitstream=str2int(InputBuffer_Serial+12);// Address
           InputBuffer_Serial[22]=0x00;
           byte temp=str2int(InputBuffer_Serial+21);// Button number
           bitstream=(bitstream) << 4;
           if (temp == 1) bitstream=bitstream+0x02; // 0010
           if (temp == 2) bitstream=bitstream+0x04; // 0100
           if (temp == 3) bitstream=bitstream+0x08; // 1000
           if (temp == 6) bitstream=bitstream+0x0d; // 1101
           if (temp == 7) bitstream=bitstream+0x0f; // 1111
           if (temp > 7) {
              return success;
           }
           byte command=0;
           command = str2cmd(InputBuffer_Serial+23);
           if (command == VALUE_OFF) {
              bitstream=bitstream|1;
           }
           Eurodomest_Send(bitstream);              // the full bitstream to send
           success=true;
        }
        return success;
}
Exemplo n.º 2
0
boolean PluginTX_006(byte function, char *string) {
        boolean success=false;
        //10;Blyss;00ff98;A1;OFF;
        //012345678901234567890123456
        // Hier aangekomen bevat string het volledige commando. Test als eerste of het opgegeven commando overeen komt
        if (strncasecmp(InputBuffer_Serial+3,"BLYSS;",6) == 0) { // Blyss Command eg. 
           unsigned long Bitstream = 0L;
           if (InputBuffer_Serial[15] != ';') return success; // check
           if (InputBuffer_Serial[18] != ';') return success; // check

           unsigned long Home=0;                    // Blyss channel A..P
           byte Address=0;                          // Blyss subchannel 1..5
           byte c;
           byte subchan=0;                          // subchannel

           InputBuffer_Serial[7]=0x30;
           InputBuffer_Serial[8]=0x78;
           InputBuffer_Serial[15]=0;
           Bitstream=str2int(InputBuffer_Serial+7); // get address
           
           c=tolower(InputBuffer_Serial[16]);       // A..P
           if(c>='a' && c<='p'){Home=c-'a';}
           c=tolower(InputBuffer_Serial[17]);       // 1..5
           if(c>='1' && c<='5'){Address=Address+c-'0';} 
           
           if (Address==1) subchan=0x80; 
           if (Address==2) subchan=0x40; 
           if (Address==3) subchan=0x20; 
           if (Address==4) subchan=0x10; 
           if (Address==5) subchan=0x30; 

           Home = Home << 24;
           Bitstream=(Bitstream) << 8;
           Bitstream=Bitstream+subchan;
           Bitstream=Bitstream+Home;

           c = str2cmd(InputBuffer_Serial+19);      // ALL ON/OFF command
           if (c == VALUE_OFF) { 
              Bitstream=Bitstream|1;
           } else {
              if (c == VALUE_ALLOFF) { 
                 Bitstream=Bitstream|3;
              } else
              if (c == VALUE_ALLON) { 
                 Bitstream=Bitstream|2;
              } 
           }
           Blyss_Send(Bitstream);                   // Bitstream contains the middle part of the bitstream to send
           success=true;
        } 
        return success;
}
Exemplo n.º 3
0
int main(void) {
   int i;
   FILE *fp = fopen("a.wb", "wb");
   enum CMD_TYPE cmd_t;
   INSTRUCTION ins;
   char cmd[16];
   int param;
   for(i = 0; ; ++i) {
      param = 0;
      printf("%03d>", i);
      scanf("%s", cmd);
      if(!strcmp("exit", cmd)) break;
      cmd_t = str2cmd(cmd);
      if(REQUIRE_PARAM(cmd_t)) {
         scanf("%d", &param);
      }
      ins.imp_t = find_imp_from_cmd(cmd_t);
      ins.cmd_t = cmd_t;
      ins.param = param;
      fwrite(&ins, 1, sizeof(INSTRUCTION), fp);
   }
   fclose(fp);
   return 0;
}
Exemplo n.º 4
0
boolean Plugin_021(byte function, struct NodoEventStruct *event, char *string)
  {
  boolean success=false;

  switch(function)
   {
   case PLUGIN_INIT:
     {
       LCD_I2C_init();
       break;
     }

  case PLUGIN_COMMAND:
     {
     byte Par2=event->Par2 & 0xff;		// Column
     byte Par3=event->Par2>>8 & 0xff;		// Data to display
     byte Par4=event->Par2>>16 & 0xff;		// In case of var, variable number
     boolean Print = true;

     if (event->Par1 >= 0 && event->Par1 <= PLUGIN_021_ROWS)
       {
       char TempString[80];
       TempString[0]=0;

       switch (Par3)
         {
           case 0:
           case CMD_RESET:
             if (event->Par1 == 0)
               LCD_I2C_clear();
             else
               LCD_I2C_printline(event->Par1-1,0, (char*)"");
             Print=false;
             break;

           case EVENT_BOOT:
             LCD_I2C_init();
             break;

           case VALUE_ON:
             _backlightval=LCD_BACKLIGHT;
             LCD_I2C_expanderWrite(0);
             Print=false;
             break;

           case VALUE_OFF:
             _backlightval=LCD_NOBACKLIGHT;
             LCD_I2C_expanderWrite(0);
             Print=false;
             break;

           case EVENT_MESSAGE:
             if ((Par4 > 0) && (Par4 <= LCDI2C_MSG_MAX))
               {
                 sprintf(TempString,"%s", LCDText_tabel[Par4-1]);
                 LCD_I2C_printline(event->Par1-1, Par2-1, TempString);
               }
             break;

           case EVENT_VARIABLE:
             if (Par4 > 0 && Par4 <16)
               {
                 int d1 = UserVar[Par4-1];            // Get the integer part
                 float f2 = UserVar[Par4-1] - d1;     // Get fractional part
                 int d2 = trunc(f2 * 10);   // Turn into integer
                 if (d2<0) d2=d2*-1;
                 sprintf(TempString,"%d.%01d", d1,d2);
                 LCD_I2C_printline(event->Par1-1, Par2-1, TempString);
               }
             break;

         }  // case

         //if (Print)
         //  LCD_I2C_printline(event->Par1-1, Par2-1, TempString);

         Wire.endTransmission(true);
         success=true;
       } // if

     break;
     }

   case PLUGIN_MMI_IN:
     {
     char *TempStr=(char*)malloc(INPUT_COMMAND_SIZE);
     
     if(GetArgv(string,TempStr,1))
       {
       if(strcasecmp(TempStr,PLUGIN_NAME_021)==0)
         {
         if(event->Par1 >= 0 && event->Par1 <= PLUGIN_021_ROWS)
           {

           if(GetArgv(string,TempStr,4))
               event->Par2|=str2cmd(TempStr)<<8;

           if(GetArgv(string,TempStr,5))
               event->Par2|=str2int(TempStr)<<16;

           event->Type = ESP_TYPE_PLUGIN_COMMAND;
           event->Command = PLUGIN_ID_021;
           success=true;
           }
         }
       }
     free(TempStr);
     break;
     }

   case PLUGIN_MMI_OUT:
     {
     //strcpy(string,PLUGIN_NAME_021);
     //strcat(string," ");
     //strcat(string,int2str(event->Par1));
     //strcat(string,",");
     //strcat(string,int2str(event->Par2 & 0xff));
     //strcat(string,",");
     //strcat(string,cmd2str(event->Par2>>8 & 0xff));
     //strcat(string,",");
     //strcat(string,int2str(event->Par2>>16 & 0xff));
     sprintf(string,"%s",PLUGIN_NAME_021);
     sprintf(string,"%s%s",string," ");
     sprintf(string,"%s%s",string,int2str(event->Par1));
     sprintf(string,"%s%s",string,",");
     sprintf(string,"%s%s",string,int2str(event->Par2 & 0xff));
     sprintf(string,"%s%s",string,",");
     sprintf(string,"%s%s",string,cmd2str(event->Par2>>8 & 0xff));
     sprintf(string,"%s%s",string,",");
     sprintf(string,"%s%s",string,int2str(event->Par2>>16 & 0xff));
     break;
     }
 }      
 return success;
}