c - फ्लैश बिल्डर 4.6 मूल एक्सटेंशन त्रुटि



actionscript-3 serial-port (1)

मेरे पास एक त्रुटि है जो मैं समझ नहीं पा रहा हूं कि क्यों दिखाई देते हैं, सबसे अजीब होता है जो कभी-कभी होता है लेकिन हाल ही में हमेशा होता है, मैं जो कोड का उपयोग करता हूं वह वही है और मैंने इसमें कोई परिवर्तन नहीं किया है, वास्तव में मैं किसी भी कोड को आवेदन की शुरुआत, मैं बटन का उपयोग करता हूं, इसलिए मुझे इस त्रुटि से कोई कारण नहीं मिलता कृपया मेरी मदद करें, त्रुटि एक संवाद है जो कहते हैं:

मूल एक्सटेंशन त्रुटि: पैकेजिंग त्रुटियां / चेतावनी हैं प्रत्येक लक्ष्य प्लेटफ़ॉर्म के लिए फ्लेक्स बिल्ड पैकेजिंग पृष्ठ में प्रत्येक मूल एक्सटेंशन की जांच करें। आप जारी रखना चाहेंगे?

और जब मैं हाँ क्लिक करता हूँ, प्रोग्राम शुरू न होता है, तो debbuger मुझे रेखा दिखाता है:

[एसडब्ल्यूएफ] सीरियल कॉमगैम एसडब्ल्यूएफ - 2,121,630 बाइट्स डीकंप्रेसन के बाद

लेकिन कभी नहीं शुरू, मैं धारावाहिक संचार के लिए RS232 पुस्तकालय का उपयोग कर रहा हूँ, इस त्रुटि को पाने से पहले यह काम ठीक है, लेकिन मुझे नहीं पता कि क्या हुआ, मेरा सी कोड है:

/*
 * NativeSerialComunication.c
 *
 *  Created on: Jan 10, 2012
 *      Author: Diego Fernando
 */
#include "NativeSerialComunication.h"
int comport = 0;
int baudrate = 57600;
int buffsize = 4096;
unsigned char buffer[4096];
uint32_t comportOpened = 0;
FREObject IsSupported(FREContext ctx, void* functionData, uint32_t argc,
        FREObject argv[]) {
    FREObject result;
    uint32_t isSuppoerted = 1;
    FRENewObjectFromBool(isSuppoerted, &result);
    return result;
}

int startCOMListener() {
    if (!OpenComport(comport, baudrate)) {
        comportOpened = 1;
        return 1;
    }
    return 0;
}

void stopCOMListener() {
    CloseComport(comport);
    comportOpened = 0;
}

void COMListener(FREContext ctx) {
    uint8_t compbytes = 0;
    while (comportOpened) {
        compbytes = PollComport(comport, buffer, buffsize);
        FREDispatchStatusEventAsync(ctx, (const uint8_t *) "listening for data",(const uint8_t *)"datalistening");
        if (compbytes) {
            FREDispatchStatusEventAsync(ctx, (const uint8_t *) buffer,
                    (const uint8_t *) "datareceived");
        }
        Sleep(100);
    }
}
FREObject startSerialListener(FREContext ctx, void* functionData, uint32_t argc,
        FREObject argv[]) {
    FREObject result;
    if (startCOMListener()) {
        CreateThread((LPSECURITY_ATTRIBUTES) NULL, 0,(LPTHREAD_START_ROUTINE) COMListener, ctx, 0, NULL);
        FREDispatchStatusEventAsync(ctx, (const uint8_t *) "listener started",
                                    (const uint8_t *) "listenerstarted");
    }
    FRENewObjectFromBool(comportOpened, &result);
    return result;
}

FREObject stopSerialListener(FREContext ctx, void* functionData, uint32_t argc,
        FREObject argv[]) {
    FREObject result;
    stopCOMListener();
    FRENewObjectFromBool(comportOpened, &result);
    return result;
}

FREObject sendDataToSerialPort(FREContext ctx, void* functionData,
        uint32_t argc, FREObject argv[]) {
    FREObject result;
    uint32_t dataSended = 0;
    uint32_t dataToSend = 0;
    FREGetObjectAsUint32(argv[0],&dataToSend);
    printf("data to be sended %d",dataToSend);

    if (comportOpened && !SendByte(comport,dataToSend)) {
        dataSended = 1;
    }
    FRENewObjectFromBool(dataSended, &result);
    return result;
}

void MyContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx,
        uint32_t* numFunctionsToSet, const FRENamedFunction** functionsToSet) {

    *numFunctionsToSet = 4;

    FRENamedFunction* func = (FRENamedFunction*) malloc(
            sizeof(FRENamedFunction) * 4);
    func[0].name = (const uint8_t*) "isSupported";
    func[0].functionData = 0;
    func[0].function = &IsSupported;

    func[1].name = (const uint8_t*) "sendDataToSerialPort";
    func[1].functionData = 0;
    func[1].function = &sendDataToSerialPort;

    func[2].name = (const uint8_t*) "startSerialListener";
    func[2].functionData = 0;
    func[2].function = &startSerialListener;

    func[3].name = (const uint8_t*) "stopSerialListener";
    func[3].functionData = 0;
    func[3].function = &stopSerialListener;

    /*func[1].name = (const uint8_t*) "sayHelloWorld";
     func[1].functionData = 0;
     func[1].function = &sayHelloWorld;*/

    *functionsToSet = func;
}

void MyContextFinalizer(FREContext ctx) {
    return;
}

void initializer(void** extDataToSet,
        FREContextInitializer* ctxInitializerToSet,
        FREContextFinalizer* ctxFinalizerToSet) {
    extDataToSet = 0; // This example does not use any extension data.
    *ctxInitializerToSet = &MyContextInitializer;
    *ctxFinalizerToSet = &MyContextFinalizer;

}

void finalizer(void** extDataToSet) {
    stopCOMListener();
    return;
}

और यह मेरा एक्शन स्क्रिप्ट कोड है जो देशी सी कोड का उपयोग करता है:

package com.nativeserialcomunication.driver
{
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;
    import flash.events.StatusEvent;
    import flash.external.ExtensionContext;

    public class NativeSerialComunication extends EventDispatcher
    {
        private var extensionContext:ExtensionContext;
        private var isSerialListenerStarted:Boolean = false;
        public function NativeSerialComunication(target:IEventDispatcher=null)
        {
            super(target);
            extensionContext =ExtensionContext.createExtensionContext("com.nativeserialcomunitacion.driver.NativeSerialComunitation","");
            extensionContext.addEventListener(StatusEvent.STATUS,statusHandle);
        }

        public function init():void{
            if(extensionContext.call("startSerialListener") as Boolean){
                isSerialListenerStarted = true;
                trace("serial listener started");
            }
            else{
                trace("no serial listener started");
            }
        }

        public function statusHandle(event:StatusEvent):void{
            trace("the event ("+event.level+") received, data:"+event.code);
        }

        public function isSupported():Boolean{
            return extensionContext.call("isSupported") as Boolean;
        }

        public function sendDataToSerialPort(data:uint):Boolean{
            return extensionContext.call("sendDataToSerialPort",data) as Boolean;
        }
    }
}

आपके लक्षित प्लेटफ़ॉर्म (एस) के लिए देशी एक्सटेंशन पैकेज चेकबॉक्स की जांच होनी चाहिए।

पर जाए:

परियोजना गुण -> फ्लेक्स बिल्डिंग पैकेजिंग -> ऐप्पल आईओएस (या एंड्रॉइड आदि)

मूल एक्सटेंशन टैब का चयन करें और सुनिश्चित करें कि "पैकेज" चेक किया गया है।





air-native-extension