Good morning,
i just try to update gmoccap, everything is working fine, but when a start my machine, i am with 1.2.0.
no idea
git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc-dev
sudo apt-get install libboost-python-dev libmodbus-dev libusb-1.0-0-dev
cd linuxcnc-dev
cd src
./autogen.sh
./configure
make
sudo make setuid
cd ..
. ./scripts/rip-environment
cnc@cnc:~$ sudo apt-get install git-core gitk git-gui
[sudo] password for cnc:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
tcl tk
Paquets suggérés :
git-doc
Les NOUVEAUX paquets suivants seront installés :
git-core git-gui gitk tcl tk
0 mis à jour, 5 nouvellement installés, 0 à enlever et 93 non mis à jour.
Il est nécessaire de prendre 1315 ko dans les archives.
Après cette opération, 2819 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? o
Réception de : 1
http.debian.net/debian/
wheezy/main git-core all 1:1.7.10.4-1+wheezy1 [1336 B]
Réception de : 2
http.debian.net/debian/
wheezy/main tcl all 8.5.0-2.1 [4762 B]
Réception de : 3
http.debian.net/debian/
wheezy/main tk all 8.5.0-2.1 [4792 B]
Réception de : 4
http.debian.net/debian/
wheezy/main git-gui all 1:1.7.10.4-1+wheezy1 [728 kB]
Réception de : 5
http.debian.net/debian/
wheezy/main gitk all 1:1.7.10.4-1+wheezy1 [576 kB]
1315 ko réceptionnés en 4s (264 ko/s)
Sélection du paquet git-core précédemment désélectionné.
(Lecture de la base de données... 126887 fichiers et répertoires déjà installés.)
Dépaquetage de git-core (à partir de .../git-core_1%3a1.7.10.4-1+wheezy1_all.deb) ...
Sélection du paquet tcl précédemment désélectionné.
Dépaquetage de tcl (à partir de .../archives/tcl_8.5.0-2.1_all.deb) ...
Sélection du paquet tk précédemment désélectionné.
Dépaquetage de tk (à partir de .../archives/tk_8.5.0-2.1_all.deb) ...
Sélection du paquet git-gui précédemment désélectionné.
Dépaquetage de git-gui (à partir de .../git-gui_1%3a1.7.10.4-1+wheezy1_all.deb) ...
Sélection du paquet gitk précédemment désélectionné.
Dépaquetage de gitk (à partir de .../gitk_1%3a1.7.10.4-1+wheezy1_all.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de git-core (1:1.7.10.4-1+wheezy1) ...
Paramétrage de tcl (8.5.0-2.1) ...
update-alternatives: utilisation de « /usr/bin/tclsh-default » pour fournir « /usr/bin/tclsh » (tclsh) en mode automatique
Paramétrage de tk (8.5.0-2.1) ...
update-alternatives: utilisation de « /usr/bin/wish-default » pour fournir « /usr/bin/wish » (wish) en mode automatique
Paramétrage de git-gui (1:1.7.10.4-1+wheezy1) ...
Paramétrage de gitk (1:1.7.10.4-1+wheezy1) ...
cnc@cnc:~$ git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc-dev
Cloning into 'linuxcnc-dev'...
remote: Counting objects: 158595, done.
remote: Compressing objects: 100% (35405/35405), done.
remote: Total 158595 (delta 125143), reused 154057 (delta 121588)
Receiving objects: 100% (158595/158595), 76.31 MiB | 267 KiB/s, done.
Resolving deltas: 100% (125143/125143), done.
cnc@cnc:~$ scr/emc/usr_intf/gmoccapy
bash: scr/emc/usr_intf/gmoccapy: Aucun fichier ou dossier de ce type
cnc@cnc:~$ gmoccapy
cnc@cnc:~$ gmoccapy.py
bash: gmoccapy.py : commande introuvable
cnc@cnc:~$ git pull
fatal: Not a git repository (or any of the parent directories): .git
cnc@cnc:~$ cd linuxcnc-dev
cnc@cnc:~/linuxcnc-dev$ cd src
cnc@cnc:~/linuxcnc-dev/src$
cnc@cnc:~/linuxcnc-dev/src$ git pull
Already up-to-date.
cnc@cnc:~/linuxcnc-dev/src$ make
Makefile:71: Makefile.inc: Aucun fichier ou dossier de ce type
Makefile:82: *** Makefile.inc must specify RTPREFIX and other variables. Arrêt.
cnc@cnc:~/linuxcnc-dev/src$ cd ..
cnc@cnc:~/linuxcnc-dev$ . ./scripts/rip-environment
bash: ./scripts/rip-environment: Aucun fichier ou dossier de ce type
cnc@cnc:~/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.3
Machine configuration directory is '/home/cnc/linuxcnc/configs/MACHINE'
Machine configuration file is 'CNC.ini'
Starting LinuxCNC...
.
/usr/bin/gmoccapy:147: GtkWarning: IA__gtk_widget_grab_default: assertion `gtk_widget_get_can_default (widget)' failed
self.builder.add_from_file(XMLNAME)
**** GMOCCAPY GETINIINFO ****
Preference file path: /home/cnc/linuxcnc/configs/MACHINE/CNC.pref
[]
/usr/bin/gmoccapy:222: GtkWarning: Invalid icon size 48
self.widgets.window1.show()
**** GMOCCAPY INFO ****
**** No gmoccapy2.glade file present ****
**** GMOCCAPY ERROR ****
**** Invalid embeded tab configuration ****
**** No tabs will be added! ****
toolfile: /home/cnc/linuxcnc/configs/MACHINE/tool.tbl
**** GMOCCAPY INFO ****
**** audio available! ****
**** GMOCCAPY ERROR ****
**** Error with launching 'Onboard' on-screen keyboard program,
**** is onboard installed? ****
Traceback (most recent call last):
File "/usr/bin/gmoccapy", line 1033, in _init_keyboard
close_fds = True)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] Aucun fichier ou dossier de ce type
**** GMOCCAPY INFO ****
**** no valid probe config in INI File ****
**** disabled tool measurement ****
******************************* Gcode.lang found
(gmoccapy:22917): GtkSourceView-CRITICAL **: gtk_source_language_manager_set_search_path: assertion `lm->priv->ids == NULL' failed
**** GMOCCAPY INFO : inifile = /home/cnc/linuxcnc/configs/MACHINE/CNC.ini ****:
**** GMOCCAPY INFO : postgui halfile = postgui_call_list.hal ****:
jointure 0 en erreur sur un contact de limite
emc/task/taskintf.cc 617: Error on axis 0, command number 115
emc/task/taskintf.cc 617: Error on axis 1, command number 115
emc/task/taskintf.cc 617: Error on axis 2, command number 115
jointure 1 en erreur sur un contact de limite
jointure 2 en erreur sur un contact de limite
/usr/lib/pymodules/python2.7/gmoccapy/notification.py:159: GtkWarning: Invalid icon size 48
self.popup.show()
('Error: Ressource introuvable.', 'gstfilesrc.c(1042): gst_file_src_start (): /GstPlayBin:player/GstFileSrc:source:\nNo such file "/usr/share/sounds/ubuntu/stereo/dialog-question.ogg"')
('Error: Ressource introuvable.', 'gstfilesrc.c(1042): gst_file_src_start (): /GstPlayBin:player/GstFileSrc:source:\nNo such file "/usr/share/sounds/ubuntu/stereo/dialog-question.ogg"')
('Error: Ressource introuvable.', 'gstfilesrc.c(1042): gst_file_src_start (): /GstPlayBin:player/GstFileSrc:source:\nNo such file "/usr/share/sounds/ubuntu/stereo/dialog-question.ogg"')
/usr/bin/gmoccapy:3958: GtkWarning: Invalid icon size 48
gtk.main()
quit from <btn_exit>
estopping / killing gmoccapy
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
cnc@cnc:~/linuxcnc-dev$
cnc@cnc:~/linuxcnc-dev$ git clone git://git.linuxcnc.org/git/linuxcnc.git linuxcnc-dev
Cloning into 'linuxcnc-dev'...
remote: Counting objects: 158595, done.
remote: Compressing objects: 100% (35405/35405), done.
remote: Total 158595 (delta 125143), reused 154057 (delta 121588)
Receiving objects: 100% (158595/158595), 76.31 MiB | 271 KiB/s, done.
Resolving deltas: 100% (125143/125143), done.
cnc@cnc:~/linuxcnc-dev$ sudo apt-get install libboost-python-dev libmodbus-dev libusb-1.0-0-dev[sudo] password for cnc:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
gccxml libboost-python1.49-dev libboost1.49-dev
Paquets suggérés :
libboost1.49-doc libboost-chrono1.49-dev libboost-date-time1.49-dev
libboost-filesystem1.49-dev libboost-graph-parallel1.49-dev libboost-graph1.49-dev
libboost-iostreams1.49-dev libboost-locale1.49-dev libboost-math1.49-dev
libboost-mpi1.49-dev libboost-program-options1.49-dev libboost-random1.49-dev
libboost-regex1.49-dev libboost-serialization1.49-dev libboost-signals1.49-dev
libboost-system1.49-dev libboost-test1.49-dev libboost-thread1.49-dev
libboost-timer1.49-dev libboost-wave1.49-dev xsltproc doxygen default-jdk fop
Les NOUVEAUX paquets suivants seront installés :
gccxml libboost-python-dev libboost-python1.49-dev libboost1.49-dev libmodbus-dev
libusb-1.0-0-dev
0 mis à jour, 6 nouvellement installés, 0 à enlever et 93 non mis à jour.
Il est nécessaire de prendre 14,0 Mo dans les archives.
Après cette opération, 108 Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? o
Réception de : 1
http.debian.net/debian/
wheezy/main gccxml i386 0.9.0+cvs20120420-4 [4051 kB]
Réception de : 2
http.debian.net/debian/
wheezy/main libboost1.49-dev i386 1.49.0-3.2 [9203 kB]
Réception de : 3
http.debian.net/debian/
wheezy/main libboost-python1.49-dev i386 1.49.0-3.2 [474 kB]
Réception de : 4
http.debian.net/debian/
wheezy/main libboost-python-dev i386 1.49.0.1 [3118 B]
Réception de : 5
http.debian.net/debian/
wheezy/main libusb-1.0-0-dev i386 2:1.0.11-1 [185 kB]
Réception de : 6
http.debian.net/debian/
wheezy/main libmodbus-dev i386 3.0.3-1 [79,2 kB]
14,0 Mo réceptionnés en 12s (1080 ko/s)
Sélection du paquet gccxml précédemment désélectionné.
(Lecture de la base de données... 126985 fichiers et répertoires déjà installés.)
Dépaquetage de gccxml (à partir de .../gccxml_0.9.0+cvs20120420-4_i386.deb) ...
Sélection du paquet libboost1.49-dev précédemment désélectionné.
Dépaquetage de libboost1.49-dev (à partir de .../libboost1.49-dev_1.49.0-3.2_i386.deb) ...
Sélection du paquet libboost-python1.49-dev précédemment désélectionné.
Dépaquetage de libboost-python1.49-dev (à partir de .../libboost-python1.49-dev_1.49.0-3.2_i386.deb) ...
Sélection du paquet libboost-python-dev précédemment désélectionné.
Dépaquetage de libboost-python-dev (à partir de .../libboost-python-dev_1.49.0.1_i386.deb) ...
Sélection du paquet libusb-1.0-0-dev précédemment désélectionné.
Dépaquetage de libusb-1.0-0-dev (à partir de .../libusb-1.0-0-dev_2%3a1.0.11-1_i386.deb) ...
Sélection du paquet libmodbus-dev précédemment désélectionné.
Dépaquetage de libmodbus-dev (à partir de .../libmodbus-dev_3.0.3-1_i386.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de gccxml (0.9.0+cvs20120420-4) ...
Paramétrage de libboost1.49-dev (1.49.0-3.2) ...
Paramétrage de libboost-python1.49-dev (1.49.0-3.2) ...
Paramétrage de libboost-python-dev (1.49.0.1) ...
Paramétrage de libusb-1.0-0-dev (2:1.0.11-1) ...
Paramétrage de libmodbus-dev (3.0.3-1) ...
cnc@cnc:~/linuxcnc-dev$ cd linuxcnc-dev
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev$ cd src
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev/src$
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev/src$ ./autogen.sh
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev/src$ ./configure
checking build toplevel... /home/cnc/linuxcnc-dev/linuxcnc-dev
checking installation prefix... run in place
checking for grep... /bin/grep
checking for egrep... /bin/egrep
checking for RT dir... Using /usr/realtime-3.4-9-rtai-686-pae/bin/rtai-config as the RT signature
checking for location of kernel headers... using value from RTS: /usr/src/linux-headers-3.4-9-rtai-686-pae
checking for cc version... found gcc in rtai-config
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for usability of rdtscll from asm/msr.h... no
checking for usability of linux/hidraw.h... yes
checking for libmodbus3... yes - version 3.0.3
checking for libusb-1.0... yes
checking for kernel version string... 3.4-9-rtai-686-pae
checking for kernel module extension... .ko
checking kernel build system... kbuild
checking for module installation directory... configuring for run-in-place
/home/cnc/linuxcnc-dev/linuxcnc-dev/rtlib
checking for glib... yes - 2.32.4
checking for GTK 2.4.0 or above... yes - 2.24.10
checking for libgnomeprintui-2.2... no -- printing from classicladder will not be possible
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ supports C++11 features by default... no
checking whether g++ supports C++11 features with -std=c++11... yes
checking whether make sets $(MAKE)... yes
checking for ranlib... ranlib
checking for ar... /usr/bin/ar
checking for install... /usr/bin/install
checking for sed... /bin/sed
checking for ps... /bin/ps
checking for kill... /bin/kill
checking for whoami... /usr/bin/whoami
checking for awk... /usr/bin/awk
checking for insmod... /sbin/insmod
checking for rmmod... /sbin/rmmod
checking for lsmod... /bin/lsmod
checking for pidof... /bin/pidof
checking for ipcs... /usr/bin/ipcs
checking for fuser... /bin/fuser
checking for mandb... /usr/bin/mandb
checking for python... /usr/bin/python
checking whether to build documentation... no
checking for adeos... not found
checking for rtai_hal... /usr/realtime-3.4-9-rtai-686-pae/modules/rtai_hal.ko
checking for rtai_ksched... /usr/realtime-3.4-9-rtai-686-pae/modules/rtai_ksched.ko
checking for rtai_fifos... not found
checking for rtai_shm... not found
checking for rtai_sem... not found
checking for rtai_math... /usr/realtime-3.4-9-rtai-686-pae/modules/rtai_math.ko
checking for grep that handles long lines and -e... (cached) /bin/grep
checking for egrep... (cached) /bin/egrep
checking for ANSI C header files... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for semtimedop... yes
checking for sincos function... yes
checking for __sincos... no
checking for tcl... tclConfig.sh not found, trying tcl.h and libs.
If it doesn't work try running ./configure --with-tclConfig=<path to tclConfig.sh>
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking tcl.h usability... no
checking tcl.h presence... no
checking for tcl.h... no
checking for library containing Tcl_Init... no
configure: error: tcl lib not found
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev/src$ make
Makefile:71: Makefile.inc: Aucun fichier ou dossier de ce type
Makefile:82: *** Makefile.inc must specify RTPREFIX and other variables. Arrêt.
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev/src$ sudo make setuid
Makefile:71: Makefile.inc: Aucun fichier ou dossier de ce type
Makefile:82: *** Makefile.inc must specify RTPREFIX and other variables. Arrêt.
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev/src$ cd ..
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev$ . ./scripts/rip-environment
bash: ./scripts/rip-environment: Aucun fichier ou dossier de ce type
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.3
Machine configuration directory is '/home/cnc/linuxcnc/configs/MACHINE'
Machine configuration file is 'CNC.ini'
Starting LinuxCNC...
.
/usr/bin/gmoccapy:147: GtkWarning: IA__gtk_widget_grab_default: assertion `gtk_widget_get_can_default (widget)' failed
self.builder.add_from_file(XMLNAME)
**** GMOCCAPY GETINIINFO ****
Preference file path: /home/cnc/linuxcnc/configs/MACHINE/CNC.pref
[]
/usr/bin/gmoccapy:222: GtkWarning: Invalid icon size 48
self.widgets.window1.show()
**** GMOCCAPY INFO ****
**** No gmoccapy2.glade file present ****
**** GMOCCAPY ERROR ****
**** Invalid embeded tab configuration ****
**** No tabs will be added! ****
toolfile: /home/cnc/linuxcnc/configs/MACHINE/tool.tbl
**** GMOCCAPY INFO ****
**** audio available! ****
**** GMOCCAPY ERROR ****
**** Error with launching 'Onboard' on-screen keyboard program,
**** is onboard installed? ****
Traceback (most recent call last):
File "/usr/bin/gmoccapy", line 1033, in _init_keyboard
close_fds = True)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] Aucun fichier ou dossier de ce type
**** GMOCCAPY INFO ****
**** no valid probe config in INI File ****
**** disabled tool measurement ****
******************************* Gcode.lang found
(gmoccapy:28189): GtkSourceView-CRITICAL **: gtk_source_language_manager_set_search_path: assertion `lm->priv->ids == NULL' failed
**** GMOCCAPY INFO : inifile = /home/cnc/linuxcnc/configs/MACHINE/CNC.ini ****:
**** GMOCCAPY INFO : postgui halfile = postgui_call_list.hal ****:
quit from <btn_exit>
estopping / killing gmoccapy
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.3
Machine configuration directory is '/home/cnc/linuxcnc/configs/sim.gmoccapy'
Machine configuration file is 'gmoccapy.ini'
Starting LinuxCNC...
.
/usr/bin/gmoccapy:147: GtkWarning: IA__gtk_widget_grab_default: assertion `gtk_widget_get_can_default (widget)' failed
self.builder.add_from_file(XMLNAME)
**** GMOCCAPY GETINIINFO ****
Preference file path: /home/cnc/linuxcnc/configs/sim.gmoccapy/gmoccapy_development.pref
[]
/usr/bin/gmoccapy:222: GtkWarning: Invalid icon size 48
self.widgets.window1.show()
**** GMOCCAPY INFO ****
**** gmoccapy screen 2 found ****
**** GMOCCAPY ERROR ****
**** Invalid embeded tab configuration ****
**** No tabs will be added! ****
toolfile: /home/cnc/linuxcnc/configs/sim.gmoccapy/tool.tbl
**** GMOCCAPY INFO ****
**** audio available! ****
**** GMOCCAPY ERROR ****
**** Error with launching 'Onboard' on-screen keyboard program,
**** is onboard installed? ****
Traceback (most recent call last):
File "/usr/bin/gmoccapy", line 1033, in _init_keyboard
close_fds = True)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] Aucun fichier ou dossier de ce type
**** GMOCCAPY INFO ****
**** no valid probe config in INI File ****
**** disabled tool measurement ****
******************************* Gcode.lang found
(gmoccapy:28603): GtkSourceView-CRITICAL **: gtk_source_language_manager_set_search_path: assertion `lm->priv->ids == NULL' failed
**** GMOCCAPY INFO : inifile = /home/cnc/linuxcnc/configs/sim.gmoccapy/gmoccapy.ini ****:
**** GMOCCAPY INFO : postgui halfile = gmoccapy_postgui.hal ****:
estopping / killing gmoccapy
Shutting down and cleaning up LinuxCNC...
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev$ linuxcnc
LINUXCNC - 2.6.3
Machine configuration directory is '/home/cnc/linuxcnc/configs/MACHINE'
Machine configuration file is 'CNC.ini'
Starting LinuxCNC...
.
/usr/bin/gmoccapy:147: GtkWarning: IA__gtk_widget_grab_default: assertion `gtk_widget_get_can_default (widget)' failed
self.builder.add_from_file(XMLNAME)
**** GMOCCAPY GETINIINFO ****
Preference file path: /home/cnc/linuxcnc/configs/MACHINE/CNC.pref
[]
/usr/bin/gmoccapy:222: GtkWarning: Invalid icon size 48
self.widgets.window1.show()
**** GMOCCAPY INFO ****
**** No gmoccapy2.glade file present ****
**** GMOCCAPY ERROR ****
**** Invalid embeded tab configuration ****
**** No tabs will be added! ****
toolfile: /home/cnc/linuxcnc/configs/MACHINE/tool.tbl
**** GMOCCAPY INFO ****
**** audio available! ****
**** GMOCCAPY ERROR ****
**** Error with launching 'Onboard' on-screen keyboard program,
**** is onboard installed? ****
Traceback (most recent call last):
File "/usr/bin/gmoccapy", line 1033, in _init_keyboard
close_fds = True)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] Aucun fichier ou dossier de ce type
**** GMOCCAPY INFO ****
**** no valid probe config in INI File ****
**** disabled tool measurement ****
******************************* Gcode.lang found
(gmoccapy:28998): GtkSourceView-CRITICAL **: gtk_source_language_manager_set_search_path: assertion `lm->priv->ids == NULL' failed
**** GMOCCAPY INFO : inifile = /home/cnc/linuxcnc/configs/MACHINE/CNC.ini ****:
**** GMOCCAPY INFO : postgui halfile = postgui_call_list.hal ****:
quit from <btn_exit>
estopping / killing gmoccapy
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
cnc@cnc:~/linuxcnc-dev/linuxcnc-dev$
linuxcnc