int main(int argc, char* argv[]) { int size; char *buf; FILE *f; if (argc < 2) { printf("Error reading command arguments. Please try again...", argv[0]); getchar(); return 2; } fopen_s(&f, argv[1], "rb"); if (!f) { printf("Error opening jpg. Please try again..."); getchar(); return 1; } fseek(f, 0, SEEK_END); size = (int) ftell(f); buf = (char*)malloc(size); fseek(f, 0, SEEK_SET); size = (int) fread(buf, 1, size, f); fclose(f); Start(); if (Decode(buf, size)) { printf("Error decoding jpg. Please try again..."); getchar(); return 1; } BMP_Save("output.bmp", Width_Get(), Height_Get(), Image()); Destroy(); return 0; }
/* Model step function */ void test_udp_step(void) { /* local block i/o variables */ real32_T rtb_ARDrone_Acc_Y; real32_T rtb_ARDrone_Acc_Z; real32_T rtb_ARDrone_Acc_X; real32_T rtb_ARDrone_Magneto_X; int32_T rtb_UDPM_Receive_Int32; int32_T rtb_UDPM_Receive_Int32_h; int32_T rtb_UDPM_Receive_Int32_n; int32_T rtb_UDPM_Receive_Int32_a; int32_T rtb_UDPM_Receive_Int32_i; int32_T rtb_UDPM_Receive_Int32_l; int32_T rtb_UDPM_Receive_Int32_ac; int32_T rtb_DataTypeConversion2; int32_T rtb_DataTypeConversion3; int32_T rtb_DataTypeConversion12; int32_T rtb_DataTypeConversion11; int32_T rtb_DataTypeConversion9; int32_T rtb_DataTypeConversion1; int16_T rtb_Height; int8_T rtb_DataTypeConversion3_h; real32_T tmp; /* S-Function (UDPM_Receive_Int32): '<S10>/UDPM_Receive_Int32' */ rtb_DataTypeConversion1 = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2); /* DataTypeConversion: '<S4>/Data Type Conversion' */ rtb_DataTypeConversion3_h = (int8_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_LED): '<S4>/ARDrone_LED' */ LED_Set( (int8_T)rtb_DataTypeConversion3_h, (uint8_T)test_udp_P.ARDrone_LED_p1); /* S-Function (UDPM_Receive_Int32): '<S12>/UDPM_Receive_Int32' */ rtb_DataTypeConversion1 = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_d); /* DataTypeConversion: '<S4>/Data Type Conversion1' */ rtb_DataTypeConversion3_h = (int8_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_LED): '<S4>/ARDrone_LED1' */ LED_Set( (int8_T)rtb_DataTypeConversion3_h, (uint8_T) test_udp_P.ARDrone_LED1_p1); /* S-Function (UDPM_Receive_Int32): '<S13>/UDPM_Receive_Int32' */ rtb_DataTypeConversion1 = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_f); /* DataTypeConversion: '<S4>/Data Type Conversion2' */ rtb_DataTypeConversion3_h = (int8_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_LED): '<S4>/ARDrone_LED2' */ LED_Set( (int8_T)rtb_DataTypeConversion3_h, (uint8_T) test_udp_P.ARDrone_LED2_p1); /* S-Function (UDPM_Receive_Int32): '<S14>/UDPM_Receive_Int32' */ rtb_DataTypeConversion1 = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_p); /* DataTypeConversion: '<S4>/Data Type Conversion3' */ rtb_DataTypeConversion3_h = (int8_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_LED): '<S4>/ARDrone_LED3' */ LED_Set( (int8_T)rtb_DataTypeConversion3_h, (uint8_T) test_udp_P.ARDrone_LED3_p1); /* S-Function (UDPM_Receive_Int32): '<S7>/UDPM_Receive_Int32' */ rtb_DataTypeConversion1 = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_j); /* DataTypeConversion: '<S6>/Data Type Conversion' */ rtb_ARDrone_Acc_X = (real32_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_Motor): '<S6>/ARDrone_Motor' */ Motor_Set( (real32_T)rtb_ARDrone_Acc_X, (uint8_T)test_udp_P.ARDrone_Motor_p1); /* DataTypeConversion: '<S6>/Data Type Conversion1' */ rtb_ARDrone_Acc_X = (real32_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_Motor): '<S6>/ARDrone_Motor1' */ Motor_Set( (real32_T)rtb_ARDrone_Acc_X, (uint8_T)test_udp_P.ARDrone_Motor1_p1); /* DataTypeConversion: '<S6>/Data Type Conversion2' */ rtb_ARDrone_Acc_X = (real32_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_Motor): '<S6>/ARDrone_Motor2' */ Motor_Set( (real32_T)rtb_ARDrone_Acc_X, (uint8_T)test_udp_P.ARDrone_Motor2_p1); /* DataTypeConversion: '<S6>/Data Type Conversion3' */ rtb_ARDrone_Acc_X = (real32_T)rtb_DataTypeConversion1; /* S-Function (ARDrone_Motor): '<S6>/ARDrone_Motor3' */ Motor_Set( (real32_T)rtb_ARDrone_Acc_X, (uint8_T)test_udp_P.ARDrone_Motor3_p1); /* S-Function (ARDrone_Acc_X): '<S1>/ARDrone_Acc_X' */ rtb_ARDrone_Acc_X = Accelero_Get_X(); /* S-Function (ARDrone_Acc_Y): '<S1>/ARDrone_Acc_Y' */ rtb_ARDrone_Acc_Y = Accelero_Get_Y(); /* S-Function (ARDrone_Acc_Z): '<S1>/ARDrone_Acc_Z' */ rtb_ARDrone_Acc_Z = Accelero_Get_Z(); /* S-Function (ARDrone_Gyro_X): '<S3>/ARDrone_Gyro_X' */ rtb_ARDrone_Magneto_X = Gyro_Get_X(); /* DataTypeConversion: '<Root>/Data Type Conversion1' */ tmp = (real32_T)floor(rtb_ARDrone_Magneto_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion1 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion1' */ /* S-Function (ARDrone_Gyro_Y): '<S3>/ARDrone_Gyro_Y' */ rtb_ARDrone_Magneto_X = Gyro_Get_Y(); /* DataTypeConversion: '<Root>/Data Type Conversion2' */ tmp = (real32_T)floor(rtb_ARDrone_Magneto_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion2 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion2' */ /* S-Function (ARDrone_Gyro_Z): '<S3>/ARDrone_Gyro_Z' */ rtb_ARDrone_Magneto_X = Gyro_Get_Z(); /* DataTypeConversion: '<Root>/Data Type Conversion3' */ tmp = (real32_T)floor(rtb_ARDrone_Magneto_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion3 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion3' */ /* DataTypeConversion: '<Root>/Data Type Conversion4' */ tmp = (real32_T)floor(rtb_ARDrone_Acc_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion12 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion4' */ /* DataTypeConversion: '<Root>/Data Type Conversion5' */ tmp = (real32_T)floor(rtb_ARDrone_Acc_Y); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion11 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion5' */ /* DataTypeConversion: '<Root>/Data Type Conversion6' */ tmp = (real32_T)floor(rtb_ARDrone_Acc_Z); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion9 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion6' */ /* S-Function (UDPM_Send_Int32): '<S7>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion11, (int8_T) test_udp_P.UDPM_Send_Int32_p2); /* S-Function (UDPM_Receive_Int32): '<S8>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32 = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_m); /* S-Function (UDPM_Send_Int32): '<S8>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion9, (int8_T) test_udp_P.UDPM_Send_Int32_p2_j); /* S-Function (UDPM_Send_Int32): '<S10>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion1, (int8_T) test_udp_P.UDPM_Send_Int32_p2_h); /* S-Function (UDPM_Send_Int32): '<S12>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion2, (int8_T) test_udp_P.UDPM_Send_Int32_p2_p); /* S-Function (UDPM_Send_Int32): '<S13>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion3, (int8_T) test_udp_P.UDPM_Send_Int32_p2_i); /* S-Function (UDPM_Send_Int32): '<S14>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion12, (int8_T) test_udp_P.UDPM_Send_Int32_p2_js); /* S-Function (UDPM_Receive_Int32): '<S9>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32_h = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_g); /* S-Function (UDPM_Send_Int32): '<S9>/UDPM_Send_Int32' incorporates: * S-Function (ARDrone_Temperature): '<S2>/ARDrone_Temperature' */ udp_send_int32( (int32_T)Barometer_Get_Temperature(), (int8_T) test_udp_P.UDPM_Send_Int32_p2_k); /* S-Function (UDPM_Receive_Int32): '<S18>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32_n = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_c); /* S-Function (UDPM_Send_Int32): '<S18>/UDPM_Send_Int32' incorporates: * S-Function (ARDrone_Pressure): '<S2>/ARDrone_Pressure' */ udp_send_int32( (int32_T)Barometer_Get_Pressure(), (int8_T) test_udp_P.UDPM_Send_Int32_p2_o); /* S-Function (ARDrone_Magneto_Z): '<S5>/ARDrone_Magneto_Z' */ rtb_ARDrone_Magneto_X = Magneto_Get_Z(); /* DataTypeConversion: '<Root>/Data Type Conversion10' */ tmp = (real32_T)floor(rtb_ARDrone_Magneto_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion9 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion10' */ /* S-Function (ARDrone_Magneto_Y): '<S5>/ARDrone_Magneto_Y' */ rtb_ARDrone_Magneto_X = Magneto_Get_Y(); /* DataTypeConversion: '<Root>/Data Type Conversion11' */ tmp = (real32_T)floor(rtb_ARDrone_Magneto_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion11 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion11' */ /* S-Function (ARDrone_Magneto_X): '<S5>/ARDrone_Magneto_X' */ rtb_ARDrone_Magneto_X = Magneto_Get_X(); /* DataTypeConversion: '<Root>/Data Type Conversion12' */ tmp = (real32_T)floor(rtb_ARDrone_Magneto_X); if (rtIsNaNF(tmp) || rtIsInfF(tmp)) { tmp = 0.0F; } else { tmp = (real32_T)fmod(tmp, 4.2949673E+9F); } rtb_DataTypeConversion12 = tmp < 0.0F ? -(int32_T)(uint32_T)-tmp : (int32_T) (uint32_T)tmp; /* End of DataTypeConversion: '<Root>/Data Type Conversion12' */ /* S-Function (UDPM_Receive_Int32): '<S11>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32_a = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_a); /* S-Function (UDPM_Send_Int32): '<S11>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion12, (int8_T) test_udp_P.UDPM_Send_Int32_p2_oz); /* S-Function (UDPM_Receive_Int32): '<S15>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32_i = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_gb); /* S-Function (UDPM_Send_Int32): '<S15>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion11, (int8_T) test_udp_P.UDPM_Send_Int32_p2_n); /* S-Function (UDPM_Receive_Int32): '<S16>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32_l = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_dn); /* S-Function (UDPM_Send_Int32): '<S16>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion9, (int8_T) test_udp_P.UDPM_Send_Int32_p2_d); /* S-Function (ARDrone_Height): '<Root>/Height' */ rtb_Height = Height_Get(); /* DataTypeConversion: '<Root>/Data Type Conversion9' */ rtb_DataTypeConversion9 = rtb_Height; /* S-Function (UDPM_Receive_Int32): '<S17>/UDPM_Receive_Int32' */ rtb_UDPM_Receive_Int32_ac = udp_recv_int32( (int8_T) test_udp_P.UDPM_Receive_Int32_p2_pv); /* S-Function (UDPM_Send_Int32): '<S17>/UDPM_Send_Int32' */ udp_send_int32( (int32_T)rtb_DataTypeConversion9, (int8_T) test_udp_P.UDPM_Send_Int32_p2_kb); }